我想创建一个annotation
有效地作为javax.annotation.Nullable
. 我需要这个的原因是在我的上下文中我只需要一个不同的名称。
问题是我有一个必须充当的字段,Nullable
以便AutoValue
它不会自动生成用于抛出异常的代码,如果值为null
. 同时,我需要NotNull
JSR-303 验证的值。
简单来说,我希望能够将我的对象构建为无效状态,然后将其传递给将对其进行处理的验证器。我希望通过它处理所有验证Hibernate Validator API
将生成违规约束,而不会使我的程序因异常而崩溃。
所以我发现下面会做我想要的。
public abstract @Nullable @NotNull @Size(min = 3, max = 20) String getBane();
如果值不存在,这将导致AutoValue
不抛出异常,但 Hibernate Validator 仍将验证它不应该为空。这里唯一的问题是“Nullable”这个词,我想称之为“AutoValueNullable”。
我将如何“重新发明” Nullable,或者是否有它的开源代码?