如果我在Scala中有一个包层次结构,如下所示:
package toplevel {
package a {
// some interesting stuff
}
package b {
// more interesting stuff
}
package utility {
// stuff that should not be accessible from the outside
// and is not logically related to the project,
// basically some helper objects
}
}
如何禁止包toplevel
的用户查看或导入包utility
?
我尝试使用private[toplevel] package utility { ...
,但收到了此错误:expected start of definition
。
我已经搜索过这个并被误报所淹没:我得到的一切都是关于将包装私有化,这不是我的问题。
答案 0 :(得分:4)
您不能:软件包不具备访问级别。
或者更确切地说,您可以使用OSGi而不是导出它们,但如果您出于其他原因不需要它,这是一个非常重要的解决方案。
答案 1 :(得分:-1)
要与Java中的私有包达到相同的目标,您可以使用扩充访问修饰符。在您的软件包实用程序中,您可以使用private [utility]限制访问。这样,包成员只能在包实用程序本身内使用。
希望有所帮助。
答案 2 :(得分:-2)
You can only define the enclosing package, within which the code is defined