Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何抑制所有初始化错误_Java_Checker Framework - Fatal编程技术网

Java 如何抑制所有初始化错误

Java 如何抑制所有初始化错误,java,checker-framework,Java,Checker Framework,当我有一个简单的测试类 public final class InitTest { private String field; public InitTest() { init(); } private void init() { field = ""; } } checker框架的初始化检查器正确报告问题: InitTest.java:7: error: [initialization.fields.unin

当我有一个简单的测试类

public final class InitTest {

    private String field;

    public InitTest() {
        init();
    }

    private void init() {
        field = "";
    }   
}
checker框架的初始化检查器正确报告问题:

InitTest.java:7: error: [initialization.fields.uninitialized] the constructor does not initialize fields: field
        public InitTest() {
               ^
InitTest.java:8: error: [method.invocation.invalid] call to init() not allowed on the given receiver.
                init();
                    ^
  found   : @UnderInitialization(java.lang.Object.class) @NonNull InitTest
  required: @Initialized @NonNull InitTest
2 errors
根据,它应该能够通过命令行参数禁用初始化检查器:

要禁用初始化检查,请提供命令行参数
-AsuppressWarnings=未初始化

当我们使用此参数(在checker framework 2.2.1中)时,仍然会出现初始化错误:

InitTest.java:8: error: [method.invocation.invalid] call to init() not allowed on the given receiver.
                init();
                    ^
  found   : @UnderInitialization(java.lang.Object.class) @NonNull InitTest
  required: @Initialized @NonNull InitTest
1 error
我是遗漏了什么还是这是一个错误


注意:当我们使用
-AsuppressWarnings=initialization
时,不再显示错误-但这也会抑制与空性相关的问题:请参见此。

-AsuppressWarnings=uninitialized
抑制与初始化本身相关的所有警告。例如,它允许您编写不初始化其所有字段的构造函数

但是,这目前并没有禁用Checker框架中的所有其他检查。Checker框架实现将显示的错误视为方法调用错误(例如,它就是这样打印的)


另一种说法是,
-AsuppressWarnings=uninitialized
影响作为初始化错误打印的消息,但不影响作为其他类型打印的错误。这种行为是一致的,但它不是像您这样的用户所希望的。我将此行为称为Checker框架错误,并在报告中报告。

-AsuppressWarnings=uninitialized
将抑制与初始化本身相关的所有警告。例如,它允许您编写不初始化其所有字段的构造函数

但是,这目前并没有禁用Checker框架中的所有其他检查。Checker框架实现将显示的错误视为方法调用错误(例如,它就是这样打印的)

另一种说法是,
-AsuppressWarnings=uninitialized
影响作为初始化错误打印的消息,但不影响作为其他类型打印的错误。这种行为是一致的,但它不是像您这样的用户所希望的。我将这种行为称为Checker框架错误,并在报告中报告。

这里是相关的,这里是相关的