S2175を:回避ソナールールがイカしながら、リスト<クラス>クラスが含まれているかどうかを確認する方法

Tecnogirl:

私は、許可されたカスタム注釈のリストを持っていると私は、呼び出すことによって、特定の注釈が許可されているかどうかを確認しようとしているcontainsリストのメソッドを。これは動作しますが、ソナーは、ルールについて不平を言いますsquid:S2175それは言います:

「リスト<クラス>」「クラス」を含めることはできません

カップルの収集方法は、間違った型の引数で呼び出されますが、そうすることは無意味と間違った引数を使用しての可能性のある結果であることができます。List.containsまたはList.removeの引数の型がリスト宣言に使用されるタイプとは無関係である場合、このルールは、問題が発生します。

私はこれをどのように修正することができますか?

ここでは、最小限の例です:

private boolean testClassContains(){
        final List<Class<? extends Annotation>> annotations = Arrays.asList(MyAnnotation.class,YourAnnotation.class);

        return annotations.contains(YourAnnotation.class);
}
アレクサンダー・パブロフ:

1)まず、あなたがSOnarQUbe / SonarJavaプラグインの新鮮なバージョンを使用していることを確認します

2)SonarQubeは人によって書かれたソフトウェアであり、それはエラーを持っている可能性があります。例えば、同様のケースhttps://groups.google.com/forum/#!topic/sonarqube/qyOOOZORBNsは、私はあなたに彼らのJira内のファイルの問題を示唆しています。

3)一方、それを抑えます。あなたがそうする理由がある場合の抑止は悪ではありません

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=180837&siteId=1