Vic*_*cia 1 android realm kotlin
我正在尝试创建此扩展功能:
fun <T : RealmObject> Realm.query(myClass : KClass<T>) {
RealmQuery.createQuery(this, myClass::class.java)
}
Run Code Online (Sandbox Code Playgroud)
这不编译.编译器说:"我写的时候"未解析的引用:myClass"
myClass::class.java
Run Code Online (Sandbox Code Playgroud)
但如果我这样做:
fun <T : RealmObject> Realm.query(myClass : Class<T>) {
RealmQuery.createQuery(this, myClass)
}
Run Code Online (Sandbox Code Playgroud)
它完美无缺!我不明白为什么.
myClass已经KClass<T>可以使用myClass.java成员函数了:
fun <T : RealmObject> Realm.query(myClass : KClass<T>) =
RealmQuery.createQuery(this, myClass.java)
Run Code Online (Sandbox Code Playgroud)
为了简化使用你其实可以利用inline像这样
inline fun <reified T : RealmObject> Realm.query() =
RealmQuery.createQuery(this, T::class.java)
Run Code Online (Sandbox Code Playgroud)
然后用它作为 val userQuery = Realm.query<User>()
| 归档时间: |
|
| 查看次数: |
756 次 |
| 最近记录: |