如果我声明一个在其参数上使用验证注释的方法,例如:
public void myMethod(@NonNull String s){}
我想要 Eclipse 进行标记
myMethod(null);
作为编译错误。
可行吗? (评论后似乎 Eclipse 中有一个用于空检查的特定配置,但其他的呢?)
我向 org.hibernate.validator:hibernate-validator 和 jakarta.validation:jakarta.validation-api 添加了依赖项。
我启用了注释处理(必须在项目上添加特定配置,我在工作区级别没有找到 Java 编译器的选项) 我将这两个 jar 添加到注释处理器的工厂路径中
仍然没有发生任何事情。 我错过了什么吗?有可能吗?
或者这些应该被认为只是声明性的,(在这种情况下,我什至需要导入 hibernate-validator 实现吗?)
API 似乎不是为此而设计的。然而 Eclipse 自然可以处理一些与空值相关的注释。
对此没有一般偏好,但可以在项目级别设置注释处理。 项目 > 属性 > Java 编译器 > 注解处理 启用项目特定设置 启用注释处理
需要设置严重性级别,这可以在常规级别而不是项目级别完成。 首选项 > 编译器 > 错误/警告 在“空分析”部分中选中“启用基于注释的空分析” “对空规范使用默认注释”有一个“配置”按钮。
以下是处理的注释:@Nullable @NonNull @NonNullByDefault。这些是 Eclipse 注释,但您可以添加其他注释来处理相同的含义。
但是,这是唯一可用的,没有特定的配置来配置 @Positive 或其他 jakarta 注释的使用。 然后你需要定义
在“注释处理”部分中,有“工厂路径”子部分用于定义除默认注释处理器之外的其他注释处理器,但在这里添加休眠验证器对我来说没有任何效果。可能是因为没有可用的配置来设置这些注释违规的严重性。
注意:在 @NonNull 注释上设置错误严重级别将阻止测试(例如断言抛出异常)编译。