Official docs表示标记为private
的包级元素仅在声明它们的模块中可见。
因此A
中声明的Module1.kt
类Module2.kt
在Module2.kt
中无法显示。但是,如果我尝试添加到A
它自己的类Redeclaration: A
,我会收到Module2.kt
错误。
由于我无法访问Module1
到A
的{{1}}课程,为什么名称A
无法免费使用使用?
答案 0 :(得分:11)
“模块是一组编译在一起的Kotlin文件”(Visibility Modifiers - Kotlin Programming Language)。
在您的示例中,Module1.kt
和Module2.kt
是单独的源文件,尽管它们的名称不一定是单独模块的一部分:
private class A
。请记住,可见性与身份不同。即使class
在其他地方不可见,但这并不意味着它不存在。使用相同的完全限定名称加载多个类声明可能(并且可能会)在运行时导致问题。