を呼び出して、私は次のクラス定義されているKotlinアンドロイドKotlin拡張スーパーiはJavaのAndroidデベロッパー午前
に近づいています:
open class Player : RealmObject() {
...
}
を、私は、次の2つの拡張、のための1つを定義しましたジェネリックRealmObjectクラスと特定のプレイヤークラスの1:私はどのRealmObject
オブジェクト上.store()
を呼び出す場合私が欲しいもの
fun RealmObject.store() {
Realm.getDefaultInstance().use { realm ->
realm.beginTransaction()
realm.copyToRealmOrUpdate(this)
realm.commitTransaction()
}
}
fun Player.store(){
this.loggedAt = Date()
(this as RealmObject).store()
}
は、トンであります彼RelamObject.store()
が呼び出されますが、Player
インスタンスの.store()
を呼び出した場合、呼び出される内線番号はPlayer.store()
になります。 (現在は問題ありません) 私は同じコードを貼り付けてコピーしたくありません。 だから私は内部的にPlayer.store()
は一般的なものを呼び出すでしょうRealmObject.store()
私はそれを得ました。私はそこまで書いたコードが実際に期待通りに働いている:私は求めていますどのようなD
は(私は個人的に直感によると書いたからといって)です:
は、これは良い方法です!それとも良い方法がありますか?
は
:私はよく分からない
これを行うためのもう一つの有効な方法は、優れている、他の内線に呼び出し可能なリファレンスを使用することですこの作業を行うには、[Code Review](https://codereview.stackexchange.com/)にアクセスして、この疑問を投稿する必要があります。 –