java - 创建自定义 Nullable 注释

标签 java validation annotations auto-value

我想创建一个注释,它的作用与javax.annotation.Nullable完全相同。我需要这个的原因是我只需要在我的上下文中为它起一个不同的名称。

问题是我有一个字段必须充当 AutoValueNullable ,以便在值为 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/

相关文章:

java - 无法将字符集 65535 中的字节转换为日语 (5035)

java - 分隔符在省略整数时会给出多余的空间

java - Java 中的溢出 float

php - 关于在 Javascript 和 PHP 之间共享验证规则的建议?

c# - 为什么 Resharper/Jetbrains [NotNull] 注释接口(interface)会警告我 nullreferenceexceptions?

java - Lombok 如何将代码生成到现有类中?

java - 键绑定(bind)中的修饰符(SHIFT +(随机键))

javascript - 在 asp.net 中客户端脚本验证后触发事件?

使用部分捕获进行 url 验证的正则表达式

java - Reflections - 按照@Order注解的顺序获取包类