Kotlin内部可见性修改器的范围

时间:2014-09-12 17:03:43

标签: visibility kotlin

我在理解内部访问修饰符时遇到问题。在我的例子中,我不能产生任何与公共行为不同的情况。即使我创建了一个jar,我也可以从jar外部访问jar中的内部函数(来自与jar中使用的包不相关的其他包)。在文档中使用了术语模块,但我无法找到模块的确切内容。

我的问题是:

  1. 什么是kotlin的模块?

  2. 访问修饰符内部与公共modiefier有何不同?

1 个答案:

答案 0 :(得分:6)

Kotlin编译器版本M8(0.8.11)忽略了模块,更确切地说,它的工作方式就好像所有代码都放在同一个模块中一样,这就是为什么你无法获得internal的可见性错误的原因

从下一个里程碑版本开始,您创建的每个IDE模块都有自己的可见范围,当您尝试从另一个模块访问internal声明时,会出现错误。另一方面,公众在整个项目中都可见。

更新:M8中没有开启,暂时推迟

更新:自later Kotlin milestones and betas

以来已启用此功能