Java的Kotlin:是否可以为空?
当从Java访问Kotlin类时,是否可以在运行时分辨特定字段是否可以空? 此外,是否有可能判断一个类是否是一个数据类?
即使是一个猜测就足够我的目的。 使用reflection也很好。
如果您有一个属性的java.lang.reflect.Field
实例,则可以先通过kotlin.reflect.KProperty
将其转换为kotlin.reflect.KProperty
实例,然后获取该属性的原始Kotlin表示kotlin.reflect.jvm.ReflectJvmMapping
,然后获取types和检查其可空性或其他:
public static boolean isNullable(Field field) { KProperty> property = ReflectJvmMapping.getKotlinProperty(field); return property.getType().isMarkedNullable(); }