首页 文章

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

提问于
浏览
13

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

我的问题是:

  • 什么是kotlin的模块?

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

1 回答

  • 6

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

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

    UPDATE :这在M8中没有打开,推迟了以后

    UPDATE :自later Kotlin milestones and betas开启此项

相关问题