来自Java的Kotlin:字段是否可以为空?

Dmi*_*nko 14 java kotlin

从Java访问Kotlin类时,是否可以在运行时告知特定字段是否可以为空?此外,是否可以判断一个类是否是一个数据类?

即便猜测也足以满足我的目的.使用反射也很好.

Ale*_*lov 20

如果您有一个java.lang.reflect.Field属性的实例,您可以先通过将属性转换为kotlin.reflect.KProperty实例来获取该属性的原始Kotlin表示kotlin.reflect.jvm.ReflectJvmMapping,然后获取该类型并检查其可为空性或其他任何内容:

public static boolean isNullable(Field field) {
    KProperty<?> property = ReflectJvmMapping.getKotlinProperty(field);
    return property.getType().isMarkedNullable();
}
Run Code Online (Sandbox Code Playgroud)