2016-12-30 10 views
1

私は、この拡張機能を作成しようとしています:Kotlin拡張機能:未解決の参照

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

これはコンパイルされません。私は

myClass::class.java 

を書くときしかし、私がしなければ、これは "MyClassに未解決の参照:":コンパイラは言う

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

それは完璧に動作します!なぜか分からない。あなたが実際にそう

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

ようinlineを利用し、その後、として使用することができ、使用を簡素化するために

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

答えて

5

myClassは、すでにあなたがそうのようなmyClass.javaメンバ関数を使用することができますKClass<T>ですval userQuery = Realm.query<User>()

+1

あなたは正しいです!どうもありがとう! –

関連する問題