Java中的Kotlin:字段是否可以为空?
当从Java访问Kotlin类时,是否可以在运行时判断特定字段是否可为空?另外,是否可以判断一个类是否是数据类Java中的Kotlin:字段是否可以为空?,java,kotlin,Java,Kotlin,当从Java访问Kotlin类时,是否可以在运行时判断特定字段是否可为空?另外,是否可以判断一个类是否是数据类 就我的目的而言,一个猜测就足够了。使用反射也很好。如果属性有java.lang.reflect.Field实例,则可以首先通过使用Kotlin.reflect.jvmmapping将其转换为Kotlin.reflect.KProperty实例来获取属性的原始Kotlin表示形式,然后获取类型并检查其可空性或其他任何内容: public static boolean isNullable
就我的目的而言,一个猜测就足够了。使用反射也很好。如果属性有
java.lang.reflect.Field
实例,则可以首先通过使用Kotlin.reflect.jvmmapping
将其转换为Kotlin.reflect.KProperty
实例来获取属性的原始Kotlin表示形式,然后获取类型并检查其可空性或其他任何内容:
public static boolean isNullable(Field field) {
KProperty<?> property = ReflectJvmMapping.getKotlinProperty(field);
return property.getType().isMarkedNullable();
}
公共静态布尔值可为空(字段){
KProperty属性=ReflectJvmMapping.getKotlinProperty(字段);
返回属性.getType().isMarkedNullable();
}
您想以编程方式还是仅以视觉方式?@nhaarman programmatically您可能可以使用。但是我不知道你怎么能在Kotlin中得到一种变量。@nhaarman天哪,我知道你,你就是mockito Kotlin那个家伙!顺便说一句,在那个图书馆工作真是太棒了!关于数据类:,您只需执行MyClass::class.isData