return 100 } set(id) { println(id) } } class User { var id by IdProp() } class IdPref: ReadWriteProperty<Any, Long> { override fun getValue(thisRef: Any, property: KProperty<*>): Long { return 100 } override fun setValue(thisRef: Any, property: KProperty<*>, value: Long) { println(value) } }
Extra<T>: ReadWriteProperty<Activity, T> { var field: Any? = UNINITIALIZED_VALUE override fun getValue(thisRef: Activity, property: KProperty<*>): T { if (field == UNINITIALIZED_VALUE) { field = thisRef.intent.extras?.get(property.name) } return field as T } override fun setValue(thisRef: Activity, property: KProperty<*>, value: T) { field = value } }
Extra<T>: ReadWriteProperty<Activity, T> { var field: Any? = UNINITIALIZED_VALUE override fun getValue(thisRef: Activity, property: KProperty<*>): T { if (field == UNINITIALIZED_VALUE) { field = thisRef.intent.extras?.get(property.name) } return field as T } override fun setValue(thisRef: Activity, property: KProperty<*>, value: T) { field = value } }