2016-03-31 8 views
1

KClass nesnesinin yalnızca members alanına erişmenin tamam olduğunu kabul ettim. Ama olmadığında bir dava buldum. Her iki test de istisnalar atıyor.Bilinmeyen (Any) nesnesinde kclass.memberProperties öğesini aramak güvenli midir?

@Test fun mapProperties() { 
    val map = mapOf("a" to "b") 
    val cls = map.javaClass.kotlin 
    cls.members 
} 

Atmalar: kotlin.reflect.KotlinReflectionInternalError: Incorrect resolution sequence for Java field public open val values: kotlin.collections.MutableCollection<(V..V?)> defined in java.util.Collections.SingletonMap[[email protected]]

@Test fun mapProperties2() { 
    val map = mapOf("a" to "b") 
    val cls = clsByReified(map) 
    cls.members 
} 

inline fun <reified T: Any> clsByReified(instance: T): KClass<T> { 
    return T::class 
} 

Atmalar: Ben bir hata tökezledi ya da sadece bir şey eksik kotlin.reflect.KotlinReflectionInternalError: No metadata found for public abstract val entries: [Not-computed] defined in kotlin.collections.Map[[email protected]]

emin olmaz.

cevap

2

Bu, kısa bir süre önce giderilen ve gece yapımlarında bulunan bir hatadır. Yaklaşan Kotlin 1.0.2 sürümü, düzeltmeyi içerecek. İşte asıl konu: KT-11258.

İlgili konular