关于扩展属性

来源:7-9 枚举类 enum class

turboburst

2020-12-02

在学习枚举类的时候,既然枚举类可以有扩展方法,那我觉得也应该有扩展属性,于是我写了下面的代码
enum class EnumClass(val price:Double){
enum1(112.3),
enum2(34.2),
enum3(56.3);
}

var EnumClass.myField: Int
get() {
return myField
}
set(value) {myField = value}
}

但是这样就一定会有问题,在main里如果我这样写:EnumClass.enum2.myField = 9,这是无法运行的会报错,如果不是扩展属性,我可以使用field,但是扩展属性的情况下,要怎么做呢?

写回答

1回答

bennyhuo

2020-12-02

跟枚举无关。扩展属性不能有backingfield,所以扩展属性本质上就是扩展函数,不能存值。

0
1
turboburst
非常感谢!
2020-12-10
共1条回复

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1760 学习 · 481 问题

查看课程