我理解内部访问修饰符有问题.在我的例子中,我无法产生任何情况下,它的行为不同于公众.即使我创建了一个jar,我也可以从jar外部访问jar中的内部函数(从与jar中使用的包无关的另一个包).在文档中使用了术语模块,但我无法确定模块到底是什么.

因此,我的问题是:

  1. Kotlin 的模块是什么?

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

推荐答案

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

Starting with the next milestone release, every IDE module you create has its own visibility scope, and when you try to access an internal declaration from one module in another, you get an error. Publics, on the other hand, are visible across the whole project.

UPDATE:这在M8中尚未启用,推迟到稍后

UPDATE: This has been turned on since later Kotlin milestones and betas

Kotlin相关问答推荐

如何在Kotlin中为两个数据类创建可重用的方法?

我可以在kotlin/java.util.scanner中跳过分隔符而不重复吗?

为什么我的通用Kotlin函数中的这个转换未经判断?

找不到有效的 Docker 环境

可以在没有导入声明的情况下调用 Kotlin 扩展函数吗?

为什么这个 Kotlin 代码不起作用? (如果 str[index] 在列表中,则打印)

Eclipse:无法安装 Kotlin 插件

SpringBoot 2.5.0 对于 Jackson Kotlin 类的支持,请在类路径中添加com.fasterxml.jackson.module: jackson-module-kotlin

Kotlin - 当表达式返回函数类型

将 jetpack compose 添加到现有元素

调用单元测试验证伴随对象方法

变量后的Android问号

Kotlin的web-framework框架

如何将命令行参数传递给Gradle Kotlin DSL

如何捕获传递给模拟函数的参数并返回它?

ObjectAnimator.ofFloat 不能直接在kotlin中取Int作为参数

(kotlin的Moshi)@Json vs@field:Json

未解决的参考 dagger 2 + kotlin + android gradle

判断EditText是否为空kotlin android

Android studio,构建kotlin时出现奇怪错误:生成错误代码