public final class InitTest {
private String field;
public InitTest() {
init();
}
private void init() {
field = "";
}
}
チェッカーフレームワークの初期化チェッカーが正しく問題を報告し、すべての初期化エラーを抑制するために、コマンドライン引数を使用して初期化チェッカーを無効にできるはずです:
To disable initialization checking, supply the command-line argument
-AsuppressWarnings=uninitialized
我々は(チェッカー・フレームワーク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
を使用するとエラーは表示されなくなりますが、これによってヌルネス関連の問題も抑制されます。SO discussionを参照してください。
ここに関連する[問題1590](https://github.com/typetools/checker-framework/issues/1590) – TmTron