Quick actions

cmd+k|ctrl+k

Navigation

Languages

Property Delegation : Any

Snippet info

Language

Kotlin

Visibility

public

Author

habib17

Created

2019-11-04T04:18:05Z

Updated

2019-11-04T04:18:05Z

import kotlin.reflect.KProperty
fun main(args : Array<String>){
    val animal = Animal()
    animal.name = "Hello Cat"
    animal.weight = 7.2
    animal.age = 1
    
    println("Nama: ${animal.name}")
    println("Berat: ${animal.weight}")
    println("Umur: ${animal.age} Tahun")
}

class DelegateGenericClass {
    private var value: Any = "Default"
 
    operator fun getValue(classRef: Any, property: KProperty<*>): Any {
        println("Fungsi ini sama seperti getter untuk properti ${property.name} pada class $classRef")
        return value
    }
 
    operator fun setValue(classRef: Any, property: KProperty<*>, newValue: Any) {
        println("Nilai ${property.name} dari: $value akan berubah menjadi $newValue")
        value = newValue
    }
}
 
class Animal {
    var name: Any by DelegateGenericClass()
    var weight: Any by DelegateGenericClass()
    var age: Any by DelegateGenericClass()
}
INFO