我有一些 java 代码,如下所示
import org.checkerframework.checker.nullness.qual.Nullable;
abstract class Foo {
abstract @Nullable String getFoo();
void foo() {
if (getFoo() != null) {
bar(getFoo());
}
}
void bar(String str) {
str.charAt(1);
}
}
这给了我错误
Error: [argument.type.incompatible] incompatible types in argument.
found : @Initialized @Nullable String
required: @Initialized @NonNull String
这是无法理解的,getFoo
因为它被装饰了Nullable
。
我可以在不修改bar
方法的情况下防止这种情况吗?这两种方法getFoo
都bar
超出了我的控制范围,无法进行修改。解决此问题的解决方案是什么?