Android中的Kotlin"内部"​​可见性修饰符

Nik*_*nko 17 android kotlin

假设您正在编写Android项目(而不是库).所有文件都汇编在一起所以... internal在这种情况下使用可见性修饰符有什么意义吗?

zsm*_*b13 33

您可以在单个Android应用程序中拥有多个彼此依赖的Gradle模块,在这种情况下,会internal限制给定模块内的可见性.例如,如果您有一个data处理数据库和网络任务的单独模块,并且您只想从该模块公开一些接口,而不是它们的实现,那么这可能很有用.

否则,如果您没有使用多个模块,并且整个应用程序只在默认app模块中,则internal修改器与默认public可见性相比没有任何区别.


Wil*_*zel 6

不,因为你只有一个模块。看一下定义。

内部可见性修饰符意味着该成员在同一模块中可见。更具体地说,一个模块是一组编译在一起的 Kotlin 文件:

  • 一个 IntelliJ IDEA 模块;
  • 一个 Maven 项目;Gradle 源集;
  • 使用一次 Ant 任务调用编译的一组文件。

来源

internal 只对几个模块有效。