本人刚开始使用Kotlin的菜鸟一枚,请教以下问题
Android中使用Kotlin的反射,用来获取一个Activity或任意类中的属性信息,使用方式是obj::class.declaredMemberProperties,obj是一个Activity。结果在运行时发生以下错误
Caused by: java.lang.TypeNotPresentException: Type android/support/v4/app/ActivityCompat$SharedElementCallback23Impl not present at java.lang.Class.getDeclaredClasses(Native Method) at java.lang.Class.getDeclaredClasses(Class.java:534) at kotlin.reflect.jvm.internal.structure.ReflectJavaClass.getInnerClassNames(ReflectJavaClass.kt:35)....
根据错误SharedElementCallback23Impl知道是没有对应的类,尝试使用6.0(23)以上版本运行,运行正常。可以知道是因为kotlin在低版本运行时乃然按照开发时最高版本进行各属性获取导致的错误,但不知道怎样避免。已知可以使用obj.javaClass.declaredFields来获取,没有问题,但是用上面的方式应该如何进行,请大神指点。