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

scala – Companion类需要导入Companion对象方法和嵌套对象吗?

发布时间:2020-12-16 09:25:21 所属栏目:安全 来源:网络整理
导读:我正在查看Akka相关的类型安全激活器代码,以下构造引起了我的兴趣: 伴侣对象: object MarkerActor { sealed trait MarkerMessage case object Stop extends MarkerMessage .. def objectMethod = print("hi from companion object")} Companion类:它导入
我正在查看Akka相关的类型安全激活器代码,以下构造引起了我的兴趣:

伴侣对象:

object MarkerActor {
  sealed trait MarkerMessage
  case object Stop extends MarkerMessage
   ..
  def objectMethod = print("hi from companion object")
}

Companion类:它导入伴随对象方法:

class MarkerActor extends Actor with ActorLogging {
    import MarkerActor._   // Comment this line to compare w or w/o import available

    objectMethod  // just to see if 'visible' within companion class

    override def receive = {
      case Stop => {

所以..这有点令人惊讶.为什么同伴类/对象之间没有“特殊关系”,允许类自动“看到”对象方法?

更新我对此有点怀疑,所以继续并注释掉“import MarkerActor._”这导致Companion类中出现“Symbol not found:Stop”错误.所以..导入确实是必需的.

解决方法

几年前,讨论过是否将所有伴随对象成员隐式导入其父类.当时做出的决定(今天仍然有意义)是要求显式导入,因为添加额外的导入比删除不需要的导入更容易. Here is the full discussion.

(编辑:李大同)

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

    推荐文章
      热点阅读