gpt4 book ai didi

android - Kotlin 扩展函数 : unresolved reference

转载 作者:行者123 更新时间:2023-11-29 15:03:11 31 4
gpt4 key购买 nike

我正在尝试创建这个扩展函数:

fun <T : RealmObject> Realm.query(myClass : KClass<T>) {    
RealmQuery.createQuery(this, myClass::class.java)
}

这不会编译。编译器说:“Unresolved reference: myClass” 当我写的时候

myClass::class.java

但是如果我这样做:

fun <T : RealmObject> Realm.query(myClass : Class<T>) {
RealmQuery.createQuery(this, myClass)
}

效果很好!我不明白为什么。

最佳答案

myClass已经是 KClass<T>你可以使用 myClass.java 像这样的成员函数:

fun <T : RealmObject> Realm.query(myClass : KClass<T>) =    
RealmQuery.createQuery(this, myClass.java)

为了简化使用,您实际上可以使用 inline像这样

inline fun <reified T : RealmObject> Realm.query() =    
RealmQuery.createQuery(this, T::class.java)

然后将其用作val userQuery = Realm.query<User>()

关于android - Kotlin 扩展函数 : unresolved reference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41394452/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com