【发布时间】:2016-05-13 20:02:36
【问题描述】:
我想使用 Lombok 的 @NonNull 注解为方法参数自动生成空值检查代码,同时还使用 FindBugs 的 @NonNull 来使用静态分析工具并在适用的情况下生成适当的警告。
到目前为止,我需要做以下事情:
public void doSomething (@lombok.NonNull @edu.umd.cs.findbugs.annotations.NonNull Object parameter)
{
// Do something
}
这很丑陋,所以我想避免使用这种语法。我读到了嵌套注释(here 和 here),但我似乎无法找到一种方法来创建我自己的自定义注释,并将 NonNull 注释作为嵌套注释。我是否在尝试做一些无法工作的事情?
这是我最近的尝试:
@Documented
@Retention (RetentionPolicy.CLASS)
@Target (value={ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})
public @interface MyNonNull
{
public lombok.NonNull lombokNonNull () default @lombok.NonNull;
public edu.umd.cs.findbugs.annotations.NonNull findBugsNonNull () default @edu.umd.cs.findbugs.annotations.NonNull;
}
【问题讨论】:
标签: java annotations