Kotlinのゲッターとセッター 質問する

Kotlinのゲッターとセッター 質問する

たとえば、Java では、ゲッターを独自に記述したり (IDE によって生成)、lombok の @Getter のようなアノテーションを使用したりできます。これは非常に簡単です。

Kotlinはしかしデフォルトでゲッターとセッターしかし、使い方がわかりません。

たとえば、Java に似たものを作りたいとします。

private val isEmpty: String
        get() = this.toString() //making this thing public rises an error: Getter visibility must be the same as property visibility.

では、ゲッターはどのように機能するのでしょうか?

ベストアンサー1

Kotlin ではゲッターとセッターが自動生成されます。次のように記述すると、

val isEmpty: Boolean

これは次の Java コードと同等です。

private final Boolean isEmpty;

public Boolean isEmpty() {
    return isEmpty;
}

In your case the private access modifier is redundant - isEmpty is private by default and can be accessed only by a getter. When you try to get your object's isEmpty property you call the get method in real. For more understanding of getters/setters in Kotlin: the two code samples below are equal:

var someProperty: String = "defaultValue"

and

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

Also I want to point out that this in a getter is not your property - it's the class instance. If you want to get access to the field's value in a getter or setter you can use the reserved word field for it:

val isEmpty: Boolean
  get() = field

If you only want to have a get method in public access - you can write this code:

var isEmpty: Boolean
    private set 

due to the private modifier near the set accessor you can set this value only in methods inside your object.

おすすめ記事