我试图将对象中存在的方法的访问权限限制为对象所属的包.
该方法由包内的许多类使用.我有两个选择:
该方法由包内的许多类使用.我有两个选择:
protected[pkg] object MyObject{....}
要么
private[pkg] object MyObject{....}
它们都工作得很好.
我的问题是,既然对象不能被任何类/对象扩展,那么它们不是等价的吗?
解决方法
顶级,是的,他们最终在Java中公开(不是默认访问).
但是也:
package accesstest { trait T { protected[accesstest] object Foo { def foo = 7 } private[accesstest] object Bar { def bar = 8 } } object Test extends App { val t = new T {} Console println t.Foo.foo Console println t.Bar.bar Console println other.Other.foo } } package other { object Other extends accesstest.T { def foo = Foo.foo //def bar = Bar.bar // nope } }
所以重要的是封闭物的可扩展性和访问性.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。