Отключить ненулевые проверки в Kotlin

class User(val name: String)

Я знаю, что в конструктор будет добавлена ​​эта проверка

Intrinsics.checkParameterIsNotNull(name)

Чтобы убедиться, что name не храните ноль.

Есть ли способ, чтобы инструмент не генерировал такие проверки? Может быть аннотация?

Это нужно нам весной, когда сопоставим строку json с классом. Проверка выполняется @NotNull а также @Validиз javax

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

таким образом, проверки выполняются сразу после создания объекта, но поскольку исключения вызываются из конструктора, это невозможно.

2 ответа

Вы можете увидеть, как это сделать, используя флаг компилятора:

-Xno-param-assertions

Или Proguard:

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

С Proguard вы можете добавить это правило для проверки всех нулевых проверок.

-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
    static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
Другие вопросы по тегам