Slide 32
Slide 32 text
拡張プロパティの値を保持するDelegate
無理やり作られた解決策
private class ExtensionInstanceVariable : ReadWriteProperty {
private val valueMap: MutableMap = Collections.synchronizedMap(WeakHashMap())
override fun getValue(thisRef: Any, property: KProperty<*>): T {
return valueMap[thisRef] ?: throw IllegalStateException("Property ${property.name} should
}
override fun setValue(thisRef: Any, property: KProperty<*>, value: T) {
valueMap[thisRef] = value
}
}
WeakHashMap で thisRef に紐付けて値を保持
速度的な性能は保証できない