gpt4 book ai didi

java - init 方法中的 @Nonnull 字段

转载 作者:行者123 更新时间:2023-12-01 11:11:19 24 4
gpt4 key购买 nike

有没有办法让Eclipse意识到@Nonnull字段已经在某些初始化方法中初始化了。我正在寻找类似 @​​EnsuresNonNull({"bar"}) 的东西,否则完全无法使用 Checker 框架。

示例:

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

最佳答案

据我所知,Eclipse 目前不具备此功能。您可以查看其文档a list of supported annotations .

Eclipse 目前提供的注释集比 Checker Framework 更有限。这意味着程序员无法表达有关其程序的尽可能多的事实,因此 Eclipse 工具会发出更多误报警告,您必须查看或不合理地抑制这些警告。另一方面,Eclipse工具速度更快,与开发环境集成得更好;这是您要使用哪一个的权衡。

Eclipse 开发人员不断努力改进他们的工具,而且他们很友好。因此,我确信他们会欢迎您的建议或补丁。

很遗憾 Checker 框架不适合您。您的经历并不典型:Google 每天在数百个项目上运行 Checker Framework,并且还有很多其他成功案例。您可以随时提交bug report ; Checker 框架开发人员也很友好。

关于java - init 方法中的 @Nonnull 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32330033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com