問題タブ [checker-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - JenkinsでのCheckerFrameworkレポート?
Checker Frameworkによって発行された警告がJenkinsで取得および報告されるように構成するにはどうすればよいですか(Analysis Collectorプラグインを使用するなど)。
記録のために、構成がに設定されたmavenとcheckerspluginを使用しており、CheckerFrameworkの警告がJenkinsのコンソール出力に表示されます。<failOnError>
false
java - EclipseMavenプロジェクトでのCheckerFrameworkの使用
Eclipseプラグインを使用してCheckerFrameworkを使用したいと思います。依存関係のない単一のプロジェクトがある場合、これは正常に機能するようです。
ただし、Mavenプロジェクトでチェックを実行しようとすると、次のような何百もの警告が表示されます。
cannot find symbol
コンソールに次のレポートが表示されます。
"MainActivity.java:33: error: package de.my.dependency does not exist
import de.my.dependency;"
Eclipse CheckerプラグインはMavenの依存関係を解決できないと思いますが、これを修正するためにできることはありますか?
手伝ってくれてありがとう :)
java - 引数に互換性のない型
コードをThe Checker Framworkでコンパイルすると、次のようにエラーが表示されます。
の最初の引数:
DatabaseMetadata.getColumns()が null カタログ (最初の引数) を許可することはわかっています。Checker Framework にどのように伝えるのですか?
java - 「不明な列挙型定数」警告を抑制する方法は?
java.lang.annotation.ElementType.TYPE_USE
JDK8 で追加されたCheckers Framework参照。JDK7 で使用すると、次の警告が表示されます。
unknown enum constant java.lang.annotation.ElementType.TYPE_USE
これは妥当な警告ですが、無害だと思われる場合に警告を抑制するにはどうすればよいですか?
java - @EnsuresNonNullIf アノテーションで「条件付き事後条件が満たされていない」という警告が表示される
@Nullable
チェッカー フレームワークと型注釈を使用して、とが正しく使用されていることを確認しています@NonNull
。Map のようなクラス1では、Java 仕様では、マップにそのキーのエントリが含まれていない場合にget(…)
-methods が返されると規定されています。null
したがって、メソッドには@Nullable
- 注釈があります。ただし、contains(…)
返品する場合は、返品しないことtrue
を保証したいと思います。get(…)
null
条件付きのNonNullを指定するにはどうすればよいですか?
私の知る限り、次のようにcontains(…)
-methods に注釈を付けることでこれを実現できます。@EnsuresNonNullIf
ただし、これにより警告が発生します。
この「事後条件が満たされていない」という警告をどのように解決すればよいですか?
私の環境:
- メイヴン: 3.0.4
- Java: 1.7.0_25 (オラクル)
- チェッカー フレームワーク 1.7.0 (maven プラグイン経由)
この Gistは問題を示しています。
1) マップの機能を拡張して、「類似の」キーを持つエントリを取得します。
java - オブジェクトの作成中にアノテーションを処理してデフォルト値を設定する方法
以下のようなコードを書きたかったのです。
MyClass メソッドが以下のようになっていると仮定します
そのため、アノテーションを使用して MyClass のオブジェクトを作成する場合、デフォルト値を x (たとえば 20) に設定する必要があります。
チェッカー フレームワークでは、以下のようにコードに注釈を付けることができます。
以下のように、コンパイル時にこれを2つの部分に分割する方法を知っている人はいますか?
または、以下のようなデフォルト値を渡すことができれば問題ありません。
これは注釈プロセッサを使用して実現できますか? ASM のようなバイトコード プロセッサを使用して実行する必要がありますか? より意味のある方法で更新されました。
java - Java Checker Framework の Nullness Checker を使用して再入可能性に注釈を付ける
Java 8 でChecker Frameworkの Nullness チェッカーを試しています。次のコードでチェッカーを実行すると:
チェッカーは、x.f();
可能性のあるヌル参照 x の逆参照について警告を出します。もちろん、これは理にかなっています。Checker Framework は何をするかわかりませんmap.put
。マップ オブジェクトは既に への参照を持っている可能性がありthis
、それを呼び出しますsetX(null)
。
今、私の質問は次のとおりです。メソッドが呼び出されたオブジェクト以外のオブジェクトを変更しないことを Checker Framework に伝える方法はありますか? map.put
はメソッドを呼び出さないためsetX
、 の値はx
変化しません。
警告を取り除くには、call メソッドを次のように変更します。
現在、警告はありません。これも理にかなっています。ローカル変数は外部からアクセスできません。しかし、警告を取り除くことだけを目的としてこのローカル変数を導入するのは好きではありません。
または、フィールドx
に@MonotonicNonNull
. しかし、私の実際の使用例では、フィールドを null に設定できるようにしたいと考えています。
前もって感謝します!
checker-framework - Eclipse プラグインを実行する前に、チェッカー フレームワークをインストールする必要がありますか?
Eclipse で設定ダイアログを開くと、コンソールにエラーが出力されます。
何かアドバイスはありますか?
どうもありがとう。
eclipse - Eclipse カスタム @NonNull アノテーションが無視される
Eclipse の「null 分析」機能を使用したいのですが、org.eclipse.jdt.annotation.NonNull アノテーションよりも javax.annotation.Nonnull アノテーションを使用したいと考えています。設定したカスタム アノテーションを Eclipse に認識させることができないようです。
Eclipse Luna 4.4.2 を使用しています。
次のクラスのみを含む新しいテスト プロジェクトを作成しました。
私のコンパイラ設定は、javax アノテーションを使用するように構成されています。
私のプロジェクトには、注釈を提供するための checker-1.8.10 JAR が含まれています。
これらの設定では、Eclipse は 0 エラーを報告します。
「null 仕様にデフォルトのアノテーションを使用する」をチェックして、テスト クラスを Eclipse のアノテーションを使用するように変更すると、次のようになります。
私が間違っていることを知っている人はいますか、これはおそらくEclipseのバグですか? 問題が発生した場合に備えて、チェッカーの代わりにGoogleのjsr305 JARも試しましたが、それは役に立ちませんでした。