Android中的Kotlin“内部”​​可见性修改器

假设你正在编写一个Android项目( 而不是一个库 )。 所有的文件都汇编在一起,所以…在这种情况下使用internal可见性修饰符是否有意义?

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

否则,如果不使用多个模块,并且整个应用程序只在默认的app模块中,那么internal修改器与默认的public可见性相比没有什么区别。

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

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

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

( 来源 )

internal只对几个模块有效。