什么';kotlin中的数据和数据属性不同?

什么';kotlin中的数据和数据属性不同?,kotlin,properties,access-modifiers,Kotlin,Properties,Access Modifiers,这两者有什么不同 fun main(){ class A<T>(name : T){ val dataa : T = name // <-- no problem using private modifier or not fun getData() : T = dataa } class B<T>(name : T){ val data : T = name //^^^ i get the error and i have

这两者有什么不同

fun main(){
class A<T>(name : T){
    val dataa : T = name     // <-- no problem using private modifier or not
    fun getData() : T = dataa
}

class B<T>(name : T){
    val data : T = name
    //^^^ i get the error and i have to use private modifier or use the @JvmField
    fun getData() : T = data
   }
}
fun main(){
A类(名称:T){

val dataa:T=name/
data
是Kotlin中的关键字(如
class
fun
,…),因此不能将其用作标识符

(StackOverflow代码高亮显示器表明:在问题中,您可以看到
数据
为蓝色,如
val

如果你真的需要把你的财产称为“数据”,你可以在你使用它的任何地方用背景符号把它围起来。但选择另一个名字几乎总是更好的

此外,正如Animesh在一篇评论中指出的那样,您不需要定义getter方法;Kotlin会自动为每个(非私有)属性生成一个getter方法。如果需要,您可以重写它,但语法不同。

public getData()
public setData()
是由编译器自动生成的,用于编辑getData(),使用
val数据:T=name get()=字段