gpt4 book ai didi

kotlin - 无法在不同模块中创建具有相同名称的私有(private)类

转载 作者:IT老高 更新时间:2023-10-28 13:41:31 24 4
gpt4 key购买 nike

Official docs关于 Kotlin 中的可见性修饰符说标记为 private 的包级元素仅在声明它们的模块中可见。

所以 Module1.kt 中声明的类 AModule2.kt 中不可见。但是,如果我尝试添加到 Module2.kt 它是自己的类 A 我得到 Redeclaration: A 错误。

既然在Module2.kt中无法访问到Module1A类,为什么不是这个名字一个免费使用吗?

最佳答案

“模块是一组编译在一起的 Kotlin 文件”(Visibility Modifiers - Kotlin Programming Language)。

在您的示例中,Module1.ktModule2.kt 是单独的源文件,尽管它们的名称它们不一定是单独模块的一部分:

  • 如果它们一起编译,则它们是同一模块的一部分。
  • 如果它们彼此分开编译,那么它们将成为不同模块的一部分,并且每个模块都可以定义自己的私有(private)类 A

请记住,可见性不同于身份。即使 class 在其他地方不可见,也不意味着它不存在。加载具有相同完全限定名称的多个类声明可能(并且很可能会)导致运行时出现问题。

关于kotlin - 无法在不同模块中创建具有相同名称的私有(private)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35409242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com