【问题标题】:Kotlin extension function: unresolved referenceKotlin 扩展函数:未解析的引用
【发布时间】:2016-12-30 10:16:21
【问题描述】:

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

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

这不会编译。编译器说:“未解决的引用:myClass”当我写的时候

myClass::class.java

但如果我这样做:

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

完美运行!我不明白为什么。

【问题讨论】:

    标签: android realm kotlin


    【解决方案1】:

    myClass 已经是KClass&lt;T&gt; 你可以像这样使用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&lt;User&gt;()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      相关资源
      最近更新 更多