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();
}