Scala:访问伴随对象特征的受保护字段
发布时间:2020-12-16 18:42:40 所属栏目:安全 来源:网络整理
导读:我有一个Trait,一个Companion对象和一个 Scala中的类: trait A { protected var foo = "Foo"}object B extends A {}class B { println(B.foo)} 为什么我不能访问foo?我以为foo会成为对象“B”的一个字段.有没有办法做到这一点? 解决方法 规范说您可以访问
我有一个Trait,一个Companion对象和一个
Scala中的类:
trait A { protected var foo = "Foo" } object B extends A { } class B { println(B.foo) } 为什么我不能访问foo?我以为foo会成为对象“B”的一个字段.有没有办法做到这一点? 解决方法
规范说您可以访问受保护的成员:
也就是说,不是来自以定义模板为基础的对象的伴随类.棘手. 由于“模块”命名法,这一点并不明显,模块只是意味着对象.偶尔谈论改变这种情况.虽然类和模块可以是伴侣,但关系不是对称的;考虑隐式搜索. trait A { protected var foo = "Foo" protected def bar = "Bar" } object B extends A { //override protected var foo = super.foo // no override protected def bar = super.bar } class B { //println(B.foo) // no println(B.bar) // ok } class C extends A object C { println(new C().foo) // ok } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 日志切割工具cronolog yum安装和源码安装和基本使用
- 用鱼壳修改PATH
- Bash:重命名名称中间的多个文件的一小部分
- twitter-bootstrap – Bootstrap 3按钮 – 不平坦?
- 从shell脚本发布下载到bitbucket
- bash locate with pattern with pattern
- angularjs – Angular UI Grid – 样式列菜单/应用模板
- string – Scala中是否存在takeWhile,dropWhile的组合?
- angularjs – 自动刷新过滤器
- 如何使用shell中的wget / curl在Linux上下载Oracle Java?