kotlin - kotlin 中的 data 和 dataa 属性有什么不同?
问题描述
两者有什么不同?
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
}
}
val data
和有什么区别val dataa
?
是data
kotlin 中的默认属性吗?
解决方案
data
是 Kotlin 中的关键字(如class
, fun
,...),因此您不能将其用作标识符。
(StackOverflow 代码荧光笔清楚地说明了这一点:在问题中,您可以看到它data
是蓝色的,例如val
。)
如果您确实需要将您的属性称为“数据”,则可以在使用它的任何地方用反引号将其括起来。但选择另一个名字几乎总是更好。
此外,正如 Animesh 在评论中指出的那样,您不需要定义 getter 方法;Kotlin 会为每个(非私有)属性自动生成一个。如果需要,您可以覆盖它,但其语法不同。
推荐阅读
- php - 如何在 CFS 中获取字段组的名称?
- asp.net - .NET 应用服务需要 SDK 才能在 Linux 上运行?
- db2 - DB2 for z/OS:CURSOR FOR UPDATE 锁定行为
- dom - 验证未出现在 DOM 中的元素
- laravel - 如何在 Lighthouse GraphQl 和多个 where 查询中添加大于等于
- python - Python PyQt5打开窗口并在10秒后关闭?
- google-sheets-formula - 如何使用 row() 制作 Arrayformula
- git - rebase 提交顺序混乱
- reactjs - Formik 不考虑输入的值
- c++ - C ++如何制作具有可选参数的函数