I am a Java Android Developer and I'm approaching Kotlin.
I have defined the following class:
open class Player : RealmObject() {
...
}
And I defined the following two extensions, one for the generic RealmObject class and one for the specific Player class:
fun RealmObject.store() {
Realm.getDefaultInstance().use { realm ->
realm.beginTransaction()
realm.copyToRealmOrUpdate(this)
realm.commitTransaction()
}
}
fun Player.store(){
this.loggedAt = Date()
(this as RealmObject).store()
}
What I want is if I call .store()
on any RealmObject
object, the RelamObject.store()
extension will be called BUT if i call .store()
on a Player
instance the extension that will be called will be Player.store()
.
(No problem for now)
I don't want to copy paste the same code, i love to write less reuse more.
So i need that internally the Player.store()
will call the generic RealmObject.store()
I got it. The code I wrote up there is actually working as expected :D
Is this the good way? Or there is some better way?