我在理解内部访问修饰符时遇到问题。在我的例子中,我不能产生任何与公共行为不同的情况。即使我创建了一个jar,我也可以从jar外部访问jar中的内部函数(来自与jar中使用的包不相关的其他包)。在文档中使用了术语模块,但我无法找到模块的确切内容。
我的问题是:
什么是kotlin的模块?
访问修饰符内部与公共modiefier有何不同?
答案 0 :(得分:6)
Kotlin编译器版本M8(0.8.11)忽略了模块,更确切地说,它的工作方式就好像所有代码都放在同一个模块中一样,这就是为什么你无法获得internal
的可见性错误的原因
从下一个里程碑版本开始,您创建的每个IDE模块都有自己的可见范围,当您尝试从另一个模块访问internal
声明时,会出现错误。另一方面,公众在整个项目中都可见。
更新:M8中没有开启,暂时推迟
以来已启用此功能