net*_*men 7 kotlin name-collision
关于Kotlin中可见性修饰符的官方文档说,标记的包级元素private仅在声明它们的模块中可见.
A声明的类在中Module1.kt是不可见的Module2.kt.但是,如果我尝试添加到Module2.kt它自己的类,A我会得到Redeclaration: A错误.
因为我不能访问Module2.kt到Module1的A类,为什么不是名字A随意使用?
mfu*_*n26 13
"模块是一组编译在一起的Kotlin文件"(可见性修饰符 - Kotlin编程语言).
在您的示例中,Module1.kt并且Module2.kt是单独的源文件,尽管它们的名称,它们不一定是单独模块的一部分:
private class A.请记住,可见性与身份不同.即使a class在其他地方不可见,但并不意味着它不存在.使用相同的完全限定名称加载多个类声明可能(并且可能会)在运行时导致问题.
| 归档时间: |
|
| 查看次数: |
2987 次 |
| 最近记录: |