一个很长的镜头,但把它放在那里——寻找一种基于通用相对包范围提供隐私的方法。
因此,例如,有没有一种方法可以private[foo]
用于包com.company1.foo
,并且com.company2.foo
每个包都可以根据它们的“foo-ness”访问另一个 foo 包
不太可能,但会很好,private[model]
在依赖 sbt 项目中使用可以真正受益于这种相对隐私的项目。
你不可以做这个。从语言规范(2.9):
修饰符可以用一个标识符来限定
C
(例如private[C]
),它必须表示一个包含定义的类或包
因此,您可以期望的最好的结果是共享的通用包。对于给定的两个示例,com.company1.foo
,com.company2.foo
最严格的共享根是com
; private[com]
将是你能做的最好的。
我认为这是不可能的,因为foo
它只是任何给定范围内一个特定的全名包的别名。
因此,对于名称以 结尾的包来说,与名称中.foo
包含字母的两个包相比,没有更多的共同点e
。