我想创建一个注释
,它的作用与javax.annotation.Nullable
完全相同。我需要这个的原因是我只需要在我的上下文中为它起一个不同的名称。
问题是我有一个字段必须充当 AutoValue
的 Nullable
,以便在值为 null
时它不会自动生成抛出异常的代码。同时,我需要将该值设置为 NotNull
以进行 JSR-303 验证。
简单来说,我希望能够将对象构建为无效状态,然后将其传递给 validator 来执行某些操作。我希望由 Hibernate Validator API
处理所有验证,这将生成违规约束,而不会因异常而导致我的程序崩溃。
所以我发现以下内容可以满足我的要求。
public abstract @Nullable @NotNull @Size(min = 3, max = 20) String getBane();
如果值不存在,这将导致 AutoValue 不会抛出异常,但 Hibernate Validator 仍会验证它不应该为 null。这里唯一的问题是“Nullable”这个词,我想将其称为“AutoValueNullable”。
我如何“重新发明”Nullable,或者是否有它的开源代码?
最佳答案
尝试使用jetbrain的@Contract注解
@org.jetbrains.annotations.Contract("null->false")
public static boolean isDigits(@Nullable String str) {
boolean result = false;
//TODO: ...method implementation
return result;
}
关于java - 创建自定义 Nullable 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47926222/