有没有办法让Eclipse意识到@Nonnull字段已在某些初始化方法中初始化。我在其他完全无法使用的Checker Framework中寻找像@EnsuresNonNull({" bar"})这样的东西。
示例:
import javax.annotation.Nonnull;
public class Foo{
@Nonnull String foo;
public Foo(){
init();
}
//need something like @EnsuresNonNull({"foo"});
public void init(){
foo="foo";
}
}
收到以下错误:
The @Nonnull field foo may not have been initialized
答案 0 :(得分:1)
据我所知,Eclipse目前没有此功能。您可以查看a list of supported annotations的文档。
Eclipse目前提供比Checker Framework更有限的注释集。这意味着程序员无法表达关于他们的程序的任何事实,因此Eclipse工具会发出更多误报警告,您必须查看或不正确地压制。另一方面,Eclipse工具更快,更好地与开发环境集成;关于你想要使用哪一个,这是一个权衡。
Eclipse开发人员一直在努力改进他们的工具,他们很友好。因此,我相信他们会欢迎你的建议或补丁。
Checker Framework无法为您解决问题真是太糟糕了。您的体验并不典型:Google每天都会在数百个项目上运行Checker Framework,还有很多其他成功案例。您可以随时提交bug report; Checker Framework开发人员也很友好。