Java 我如何将一个方法标记为;之后,参数X不能为空";?

Java 我如何将一个方法标记为;之后,参数X不能为空";?,java,nullable,findbugs,notnull,Java,Nullable,Findbugs,Notnull,我有这个方法: @Override public void foo( @Nullable Bar bar ) { Validate.notNull( bar, "bar is null" ); bar.x(); } 由于该方法是在其他地方定义的,因此我无法使用@NotNull标记条形图。调用Validate.notNull()将确保bar不为null,但当然FindBugs和类似工具对该约束一无所知 有没有一种简单的方法教FindBugs在调用Validate.not

我有这个方法:

 @Override
 public void foo( @Nullable Bar bar ) {
     Validate.notNull( bar, "bar is null" );
     bar.x();
 }
由于该方法是在其他地方定义的,因此我无法使用
@NotNull
标记
条形图。调用
Validate.notNull()
将确保
bar
不为null,但当然FindBugs和类似工具对该约束一无所知

有没有一种简单的方法教FindBugs在调用
Validate.notNull()
之后,
bar
必须不为null


简单来说,我指的是一种我必须在一个地方定义它的方式;当然,我可以在我的代码中撒上数百万个
@SuppressWarnings
..:)

更改Validate.notNull以返回引用,将其返回值标记为
@notNull

@NotNull
public static <T> T notNull(@Nullable T reference, String message) {
    if (reference == null) {
        throw new NullPointerException(message);
    }
    return reference;
}
public void foo(@Nullable Bar bar) {
    bar = Validate.notNull(bar, "bar is null");
    bar.x();
}