例如,在 Java 中,我可以自己编写 getter(由 IDE 生成)或使用像 lombok 中的 @Getter 这样的注释 - 这非常简单。
然而 Kotlin 有默认情况下的 getter 和 setter。
但我不明白如何使用它们。
我想让它,比方说 - 类似于 Java:
private val isEmpty: String
get() = this.toString() //making this thing public rises an error: Getter visibility must be the same as property visibility.
那么吸气剂是如何工作的呢?
Getter 和 Setter 在 Kotlin 中自动生成。如果你写:
val isEmpty: Boolean
它等价于下面的Java代码:
private final Boolean isEmpty;
public Boolean isEmpty() {
return isEmpty;
}
在您的情况下,私有访问修饰符是多余的 - isEmpty 默认情况下是私有的,只能由 getter 访问。当您尝试获取对象的 isEmpty 属性时,您实际上调用了 get 方法。为了更多地了解 Kotlin 中的 getter/setter:下面的两个代码示例是相同的:
var someProperty: String = "defaultValue"
and
var someProperty: String = "defaultValue"
get() = field
set(value) { field = value }
我还想指出的是this
getter 中的 不是您的财产 - 它是类实例。如果您想在 getter 或 setter 中访问字段的值,您可以使用保留字field
for it:
val isEmpty: Boolean
get() = field
如果您只想在公共访问中拥有一个 get 方法 - 您可以编写以下代码:
var isEmpty: Boolean
private set
由于 set 访问器附近的 private 修饰符,您只能在对象内部的方法中设置此值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)