getterとsetterのJavaの規則に従うメソッド(名前がgetで始まる引数のないメソッドと名前がsetで始まる単一の引数のメソッド)は、Kotlinではプロパティとして表されます。しかし、Javaゲッターとセッターのペアのプロパティを生成する際、Kotlinは最初にゲッターを探します。ゲッターは、ゲッターのタイプからプロパティのタイプを推測するのに十分です。一方、セッターのみが存在する場合、プロパティは作成されません(現時点ではKotlinはセットのみのプロパティをサポートしていないため)。
セッターが登場すると、プロパティの生成プロセスは少しあいまいになります。その理由は、ゲッターとセッターの型が異なる可能性があるためです。さらに、ゲッターやセッターはサブクラスでオーバーライドできます。これは、AndroidのEditTextの場合とまったく同じです。
上記の場合、Android TextViewクラスにはゲッターが含まれています
CharSequence getText()
そしてセッターボイド
setText(CharSequence)
TextView型の変数がある場合、コードは正常に機能します。しかし、オーバーライドされたゲッターを含むEditTextクラスを使用しました
Editable getText()
つまり、EditTextのEditableを取得し、EditableをEditTextに設定できます。したがって、Kotlinは、編集可能タイプの合成プロパティテキストを合理的に作成します。Stringクラスは編集可能ではないため、EditTextクラスのtextプロパティにStringインスタンスを割り当てることができません。
JetBrainsがJava getterおよびsetterメソッドのkotlinプロパティを生成するときにgetterメソッドの主要な役割を指定するのを忘れたようです。とにかく、私はgithubを介してJet brains kotlinウェブサイトにプルリクエストを送信しました。
この中程度の投稿でも上記の問題について詳しく説明しています。KotlinはJavaゲッターとセッターからプロパティをどのように生成しますか(Jetbrainsには文書化されていません)