1

我想创建一个annotation有效地作为javax.annotation.Nullable. 我需要这个的原因是在我的上下文中我只需要一个不同的名称。

问题是我有一个必须充当的字段,Nullable以便AutoValue它不会自动生成用于抛出异常的代码,如果值为null. 同时,我需要NotNullJSR-303 验证的值。

简单来说,我希望能够将我的对象构建为无效状态,然后将其传递给将对其进行处理的验证器。我希望通过它处理所有验证Hibernate Validator API将生成违规约束,而不会使我的程序因异常而崩溃。

所以我发现下面会做我想要的。

public abstract @Nullable @NotNull @Size(min = 3, max = 20) String getBane();

如果值不存在,这将导致AutoValue不抛出异常,但 Hibernate Validator 仍将验证它不应该为空。这里唯一的问题是“Nullable”这个词,我想称之为“AutoValueNullable”。

我将如何“重新发明” Nullable,或者是否有它的开源代码?

4

1 回答 1

0

尝试使用jetbrain的@Contract注解

@org.jetbrains.annotations.Contract("null->false")
public static boolean isDigits(@Nullable String str) {
boolean result = false;
//TODO: ...method implementation
return result;
}
于 2017-12-21T14:02:03.593 回答