如何解决具有ID的从属微调器
我的应用程序中有3个从属微调器。第一个的值来自具有其ID的数据库。我正在使用id / tag获取第二个微调器的值,并使用第二个微调器的id来获取第三个微调器的值,但是应用程序对第二个和第三个微调器都使用了第一个id。我不知道可能是什么问题。
fun <P,T> renewableLazy(initializer: (P) -> T): ReadWriteProperty<P,T> =
RenewableSynchronizedLazyWithThisImpl({ t,_ ->
initializer.invoke(t)
})
fun <P,T> renewableLazy(initializer: (P,KProperty<*>) -> T): ReadWriteProperty<P,T> =
RenewableSynchronizedLazyWithThisImpl(initializer)
class RenewableSynchronizedLazyWithThisImpl<in T,V>(
val initializer: (T,KProperty<*>) -> V,private val lock: Any = {}
) : ReadWriteProperty<T,V> {
@Volatile
private var _value: Any? = null
override fun getValue(thisRef: T,property: KProperty<*>): V {
val _v1 = _value
if (_v1 !== null) {
@Suppress("UNCHECKED_CAST")
return _v1 as V
}
return synchronized(lock) {
val _v2 = _value
if (_v2 !== null) {
@Suppress("UNCHECKED_CAST") (_v2 as V)
} else {
val typedValue = initializer(thisRef,property)
_value = typedValue
typedValue
}
}
}
override fun setValue(thisRef: T,property: KProperty<*>,value: V) {
// 不论设置何值,都会被重置为空
synchronized(lock) {
_value = null
}
}
}
我想使用第一个标签/ ID来获取系,并使用学院ID /标签来获取系。但是它使用第一个ID来获取教师和部门ID。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。