假设Kotlin中的一个模块意味着一个项目(虽然很高兴看到Kotlin模块的确切定义意味着什么......从文档中不清楚)......
Kotlin能见度调节剂是否有效 . 我有两个项目,一个主项目和一个测试项目,具有不同的,不重叠的包路径 . 测试项目依赖于主项目(在Eclipse中) . 主项目中的接口或类是否标记为 public
似乎并不重要 . 在测试项目中,主项目接口/类是可见的/可访问的,无论是什么 . 如果您将主要项目标记为 private
,则会出现唯一的差异,然后会出现可见性问题 . 但有或没有 public
它似乎没有任何区别 .
根据我从文档中可以看出,在界面或类上省略可见性修饰符会影响默认可见性,即 internal
.
2 回答
在当前的Kotlin中,
internal
可见性修饰符确实是强制执行的 .在Kotlin 1.0 Beta RC announcement它说:
related release notes有两点支持这一点:
最后一点对于帮助防止Java查看内部作用域标识符并与之交互至关重要 .
在Kotlin M14 release announcement它还提到:
并且回到过去的时间Kotlin M13 release announcement也显示:
所以它显然是功能性和工作性的 .
有一点值得注意的是,它仅适用于Kotlin模块,但仍可以从Java模块访问“内部”声明,尽管它显示了检查报告(警告) .
https://youtrack.jetbrains.com/issue/KT-19053