クラスの機能拡張をしたい
#既存のクラスに機能を追加する
KotlinではC#のように既存クラスのソースに変更を行うことなく、機能を追加することができます。
##拡張関数
既存のクラスに関数を追加するには、以下のように書きます。
class User(var name = "")
// Userクラスに関数を追加
fun User.isEmptyName() = this.name == "" // thisはUserのオブジェクトを参照します
##拡張プロパティ
既存のクラスにプロパティを追加するには、以下のように書きます。
// さん付けの名前プロパティを持たせる
val User.appendedName : String
get() = name.toString() + "さん"
拡張プロパティで注意しなければならないのは、実際にクラスにはメンバーを挿入していない点です。 バッキングフィールドを持てないため、初期化子を利用することは許可されていません。 getter/setterでのみ値の決定が可能です。
####参考
最終更新日時:2017年1月13日