internal 是一个未见't exist in Java. It marks a member of a class that will only be visible within the module it'的可见性修饰符 . 这与Java中默认 package 可见性为您提供的内容类似(这就是转换器在转换具有 package 可见性的成员时将使用它的原因) . 但是,'s not exactly the same. Also, note that it'不是Kotlin中的默认可见性,默认情况下,Kotlin中的类及其成员为 public .
2 回答
val
和var
是可用于声明变量(和属性)的两个关键字 . 不同之处在于使用val
会为您提供只读变量,这与在Java中使用final
关键字相同 .只要你能使用
val
就是Kotlin的惯例,如果你知道你将在某个地方改变它的 Value ,那么你应该只做var
.请参阅有关defining local variables和declaring properties的官方文档 .
internal
是一个未见't exist in Java. It marks a member of a class that will only be visible within the module it'的可见性修饰符 . 这与Java中默认package
可见性为您提供的内容类似(这就是转换器在转换具有package
可见性的成员时将使用它的原因) . 但是,'s not exactly the same. Also, note that it'不是Kotlin中的默认可见性,默认情况下,Kotlin中的类及其成员为public
.有关visiblity modifiers的文档中有更多内容 .
val
:不可变数据变量var
:可变数据变量将Java代码转换为Kotlin时:
转换器发现你没有初始化变量,所以它使它们成为
var
(可变),因为你稍后会初始化它们 .可能你的变量未被使用,所以转换器将它们变成了内部,猜测你不会在你的包之外使用它们 .
有关
var
和var
的详细信息,请阅读this,internal
阅读this .