gpt4 book ai didi

kotlin - Kotlin 中的 Getter 和 Setter

转载 作者:IT老高 更新时间:2023-10-28 13:26:18 24 4
gpt4 key购买 nike

例如,在 Java 中,我可以自己编写 getter(由 IDE 生成)或在 lombok 中使用 @Getter 之类的注解 - 这非常简单。

然而,Kotlin 有 getters and setters by default .但我不明白如何使用它们。

我想实现它,可以说 - 类似于 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 是如何工作的呢?

最佳答案

Getter 和 setter 是在 Kotlin 中自动生成的。如果你写:

val isEmpty: Boolean

相当于下面的Java代码:

private final Boolean isEmpty;

public Boolean isEmpty() {
return isEmpty;
}

在您的情况下,私有(private)访问修饰符是多余的-默认情况下 isEmpty 是私有(private)的,并且只能由 getter 访问。当您尝试获取对象的 isEmpty 属性时,您实际上调用了 get 方法。为了更深入地了解 Kotlin 中的 getter/setter:下面的两个代码示例是相等的:

var someProperty: String = "defaultValue"

var someProperty: String = "defaultValue"
get() = field
set(value) { field = value }

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

val isEmpty: Boolean
get() = field

如果您只想在公共(public)访问中使用 get 方法 - 您可以编写以下代码:

var isEmpty: Boolean
private set

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

关于kotlin - Kotlin 中的 Getter 和 Setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37906607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com