当从Java访问Kotlin类时,是否可以在运行时判断特定字段是否可以为空?另外,是否可以判断一个类是否是数据类?
就我的目的而言,一个猜测就足够了.使用反射也很好.
当从Java访问Kotlin类时,是否可以在运行时判断特定字段是否可以为空?另外,是否可以判断一个类是否是数据类?
就我的目的而言,一个猜测就足够了.使用反射也很好.
如果某个属性的实例为java.lang.reflect.Field
,则可以首先通过将其转换为具有kotlin.reflect.jvm.ReflectJvmMapping
的kotlin.reflect.KProperty
实例来获取该属性的原始Kotlin表示形式,然后获取类型并判断其是否为空或其他任何内容:
public static boolean isNullable(Field field) {
KProperty<?> property = ReflectJvmMapping.getKotlinProperty(field);
return property.getType().isMarkedNullable();
}