Kotlin 中的 Getter 和 Setter

2023-11-26

例如,在 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 }

我还想指出的是thisgetter 中的 不是您的财产 - 它是类实例。如果您想在 getter 或 setter 中访问字段的值,您可以使用保留字field for it:

val isEmpty: Boolean
  get() = field

如果您只想在公共访问中拥有一个 get 方法 - 您可以编写以下代码:

var isEmpty: Boolean
    private set 

由于 set 访问器附近的 private 修饰符,您只能在对象内部的方法中设置此值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kotlin 中的 Getter 和 Setter 的相关文章

随机推荐