在Java
package protected
中,访问非常方便,因为它允许编写模块化代码。除非您将所有这些类都粘贴到一个文件中并将Kotlin
放在所有文件上,或者通过在单独的Private
中实现Internal
,否则Module
不可能做到这一点。但是我不喜欢这种解决方案。将很多东西放在一个文件中是不可读的,另一个问题是您无法测试不是Method
的任何Class
/ Public
。还有其他解决方案吗?
答案 0 :(得分:0)
否,不支持受程序包保护的访问。
您应该在Kotlin中使用internal
。这将限制对同一模块 的访问,该模块是一起编译为工件的文件的逻辑单元。
不提供受软件包保护的可见性说明符的动机如下:from a Kotlin developer:
不具有程序包保护的访问的动机非常简单:它不提供任何实际的封装。系统中的任何其他模块都可以在与复杂的独立组件相同的程序包中定义类,并可以完全访问其内部。另一方面,具有内部可见性的类只能从定义它们的模块之外的任何模块访问。
您绝对可以测试具有内部访问权限的方法/类:模块的测试可以完全访问该模块的内部声明。