|
1
3
变量创建它们自己的getter,但是您也可以显式地定义它们。当您声明var或val时,它们通常会自动生成自己的getter 1 但在所有其他情况下:
生成一个getter 1 在您的情况下,我建议直接在接口中使用val。您可以看到,生成的getter与显式声明的getHash方法具有相同的名称。getter也不会重写方法(除非您使用@Jvm注释之一对其进行注释,我不记得是哪个注释,但您实际上并不需要这些注释)。
移除覆盖对象中的getter,然后添加
第一个接口实际上相当于用get和set方法声明一个接口。如果您从Java重写它,它将要求您重写
另外,如果您反编译Kotlin字节码,您将看到带有变量的接口编译成什么:
所以它与您最初使用的完全相同,只是子类中没有因为变量名冲突而发生冲突。
1:假设变量/常量不在方法中。顶级变量、接口中的变量、枚举、类、对象和伴随对象都会生成getter/setter,但是如果在方法中声明变量,那么在适用的地方就不会有getter和setter。 |
|
|
A. Cedano · 如何在UIState中包含错误案例? 1 年前 |
|
Murilo · Jetpack编写导航栏项目图标 1 年前 |
|
zplot · 使用具有抽象嵌套类的泛型时类型不匹配 1 年前 |