scala – 单个对象的protected [package]和private [package]之
发布时间:2020-12-16 18:33:45 所属栏目:安全 来源:网络整理
导读:我试图将对象中存在的方法的访问权限限制为对象所属的包. 该方法由包内的许多类使用.我有两个选择: protected[pkg] object MyObject{....} 要么 private[pkg] object MyObject{....} 它们都工作得很好. 我的问题是,既然对象不能被任何类/对象扩展,那么它们
我试图将对象中存在的方法的访问权限限制为对象所属的包.
该方法由包内的许多类使用.我有两个选择: 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 } } 所以重要的是封闭物的可扩展性和访问性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |