一个远景,但把它放在那里 - 寻找一种基于共同的相对封装范围提供隐私的方法。
因此,例如,有没有办法将private[foo]
用于包com.company1.foo
和com.company2.foo
,其中每个包都可以根据其“foo-ness”访问其他foo包“
不太可能,但会很好,在依赖的sbt项目中使用private[model]
可以真正从这种相对隐私中受益。
答案 0 :(得分:2)
你不能这样做。从语言规范(2.9):
修改者可以使用标识符
C
(例如private[C]
)进行限定 表示包含定义的类或包
所以你可以期待的最好的是一个共同的共同包。对于给出的两个示例com.company1.foo
和com.company2.foo
,限制性最强的共享根为com
; private[com]
是你能做的最好的事情。
答案 1 :(得分:1)
我不认为这是可能的,因为foo
只是任何给定范围内一个特定的完全命名包的别名。
因此,名称以.foo
结尾的软件包与其名称中包含字母e
的两个软件包没有多少共同之处。