加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala访问限定符有哪些保证?

发布时间:2020-12-16 08:57:45 所属栏目:安全 来源:网络整理
导读:我有一个这个代码的类: package shop.orders.services.emailprivate[services] class EmailService {...} 然后在另一个包中,我使用该类: package shop.uiimport shop.orders.services.email.EmailServiceclass PaymentConfirmation extends WithFacesConte
我有一个这个代码的类:

package shop.orders.services.email

private[services] class EmailService {...}

然后在另一个包中,我使用该类:

package shop.ui

import shop.orders.services.email.EmailService

class PaymentConfirmation extends WithFacesContext {

    var emailService: EmailService = null

查看生成的字节码,没有任何访问修饰符的迹象,这是有道理的,因为Java不支持此类访问限制.那么如果我创建一个包含块1之类的代码的库,并尝试针对库编译块2会发生什么 – 编译器不会失败,因为信息丢失了.或者它是否包含在清单中?

我正在使用Scala 2.9.2.

解决方法

您可以从Java引用EmailService,但不能从Scala引用,因为Scala将类的签名存储为scala.reflect.ScalaSignature批注. Scala编译器将失败并出现以下错误:

class EmailService in package email cannot be accessed in package shop.orders.services.email

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读