2017-09-05 18 views
0

私はnullness-example in the docs(チェッカー・フレームワークのバージョン:2.1.14)を参照してくださいNullnessChecker:初期化チェッカーだけを無効にする方法は?

推奨されているように、私はNullnessExampleWithWarnings.javaをチェックする例を実行します。

javac -processor org.checkerframework.checker.nullness.NullnessChecker docs/examples/NullnessExampleWithWarnings.java 

私が予想されるエラーを取得:

..\..\docs\examples\NullnessExampleWithWarnings.java:23: error: [assignment.type.incompatible] incompatible types in assignment. 
     foo = bar; 
      ^
    found : @FBCBottom @Nullable String 
    required: @UnknownInitialization @NonNull String 
..\..\docs\examples\NullnessExampleWithWarnings.java:33: error: [argument.type.incompatible] incompatible types in argument. 
     foo.add(quux); 
       ^
    found : @FBCBottom @Nullable String 
    required: @Initialized @NonNull String 
2 errors 

を今度はInitialization checker:をAsuppressWarnings=initializationで無効にします。

javac -processor org.checkerframework.checker.nullness.NullnessChecker -AsuppressWarnings=initialization docs/examples/NullnessExampleWithWarnings.java 

しかし、これによりヌルチェックも無効になり、ビルドではエラーが報告されなくなります。

Initialization checkerを無効にするにはどうしたらいいですか?

答えて

1

セクション3.1Checker Framework manual3.8-AsuppressWarnings=uninitializedではなく-AsuppressWarnings=initializationを使用することをお勧め。それはあなたの例のために働く。

この推奨の理由は、Nullness and Initialization Checkerの実装の詳細です。実際には、それらは一緒に集約された2つの別々のチェッカーではなく、同じチェッカーです。

関連する問題