在Kotlin中禁用非空检查

时间:2018-03-19 10:31:25

标签: kotlin bean-validation javax

class User(val name: String)

我知道在构造函数中会添加这个检查

Intrinsics.checkParameterIsNotNull(name)

确保name不存储空。

有没有办法设法不生成这样的检查?也许是注释?

我们需要在Spring中将json字符串映射到类。 验证由@NotNull@Valid从javax

完成
class User(@field:NotNull @field:Email val name: String)

因此,在创建对象后立即执行检查,但由于从构造函数抛出异常,因此无法进行检查。

2 个答案:

答案 0 :(得分:0)

您可以使用编译器标志在this post中查看如何执行此操作:

-Xno-param-assertions

或Proguard:

-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
 static void checkParameterIsNotNull(java.lang.Object, java.lang.String); 
}

答案 1 :(得分:0)

使用Proguard,您可以添加此规则以获取所有空检查

-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
    static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}