Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的Kotlin:字段是否可以为空?_Java_Kotlin - Fatal编程技术网

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访问Kotlin类时,是否可以在运行时判断特定字段是否可为空?另外,是否可以判断一个类是否是数据类


就我的目的而言,一个猜测就足够了。使用反射也很好。

如果属性有
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