在未知(Any)对象上调用kclass.memberProperties是否安全?

我认为只需访问KClass对象的members字段KClass 。 但是我没有发现一个案子。 两个测试都会抛出异常

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

抛出: kotlin.reflect.KotlinReflectionInternalError: Incorrect resolution sequence for Java field public open val values: kotlin.collections.MutableCollection<(V..V?)> defined in java.util.Collections.SingletonMap[JavaPropertyDescriptor@10163d6]

 @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 } 

抛出: kotlin.reflect.KotlinReflectionInternalError: No metadata found for public abstract val entries: [Not-computed] defined in kotlin.collections.Map[DeserializedPropertyDescriptor@5c1a8622]

不知道是我偶然发现了一个错误还是错过了一些东西。

这是一个最近已经修复的错误,并在每晚的构建中可用。 即将到来的Kotlin 1.0.2版本将包含修复程序。 这是原来的问题: KT-11258 。