Calling Java code from Kotlin - Getters and Setters の補足みたいな話。
Kotlin 1.0.2
Kotlin から Java のコードを呼ぶ際、getter / setter (getXXX / isXXX / setXXX メソッド) はプロパティとして扱える。
詳細なルールとしては、
[ルールのサンプル (Java)]
でも Kotlin から Java を呼び出すケースって、おそらく既存ソースの再利用で isXXX がある可能性もそれなりにあって・・・
ちなみに Java から Kotlin のプロパティを使用する際は、逆のイメージ。
Kotlin 1.0.2
Kotlin から Java のコードを呼ぶ際、getter / setter (getXXX / isXXX / setXXX メソッド) はプロパティとして扱える。
詳細なルールとしては、
getter |
|
---|---|
setter |
|
[ルールのサンプル (Java)]
// Kotlin でプロパティになるケース (メソッドとして使用できない)
public class PropertySample {
public String getName() { /* 略 */ }
public void setName(String name) { /* 略 */ }
// [Kotlin] public final var name: String!
// getter/setter があるので var プロパティ
public Boolean isKey() { /* 略 */ }
public void setKey(Boolean key) { /* 略 */ }
// [Kotlin] public final var isKey: Boolean!
// getter が isXXX の場合、プロパティ名は同じ(isXXX)
public Boolean getKey() { /* 略 */ }
// [Kotlin] public final var key: Boolean!
// getter が isXXX と getXXX の 2 つ存在する場合、プロパティも 2 つになる
// setter は共通 (両方のプロパティから使用される)
public int getId() { /* 略 */ }
// [Kotlin] public final val id: Int
// getter のみは val プロパティ
public String getあ() { /* 略 */ }
public String setあ(String あ) { /* 略 */ }
// [Kotlin] public final var あ: String!
// 日本語可、setter に戻り値があっても可
}
// Kotlin でプロパティにならないケース (メソッドとして使用できる)
public class NotPropertySample {
// setter のみ
public void setNum(int num) { /* 略 */ }
// 小文字スタート
public int geta() { /* 略 */ }
// static メソッド
public static int getStatic() { /* 略 */ }
// プロパティ名がかぶる
public String getUrl() { /* 略 */ }
public String getURL() { /* 略 */ } // 全部大文字の場合、プロパティ名は小文字になる
}
雑記
isXXX は混乱の元になりそうなのであまり使いたくないところ。でも Kotlin から Java を呼び出すケースって、おそらく既存ソースの再利用で isXXX がある可能性もそれなりにあって・・・
ちなみに Java から Kotlin のプロパティを使用する際は、逆のイメージ。
- XXX プロパティ → getXXX / setXXX メソッド
- isXXX プロパティ → isXXX / setXXX メソッド
0 件のコメント:
コメントを投稿