2017-03-25 2 views
0

Iterableインターフェイスを実装する3つのJavaクラスがあります。それらのうちの2つは、iterator()メソッドとまったく同じ実装です。これにより、IntelliJはコードを重複してフラグを立てます。IntelliJとソース生成のコード複製のアナウンス

The code duplication soft warning yielded by IntelliJ

私は、Java 8を使用していますので、私はインターフェイスのレベルで「デフォルト」として実装をプッシュすることができ、それは本当に多くを与えインターフェイス上のプライベートフィールドを追加することも必要であろうたとえ可能であったとしても、必要以上に情報が残っています(私はJava 8を初めて使うので、Java 8でもインターフェースのレベルでフィールドを宣言したり初期化できるかどうかはわかりません)。たとえそれをやったとしても、iterator()の異なる実装で共通のインタフェースを実装するクラスが増えます。

私は次のように述べていIntelliJのドキュメントに向けてthis linkを発見した:

検査の設定ページでを生成したとしてマークされたソース内の重複したコードを無視し、それを行う]チェックボックスを選択するには:[.. 。]

残念ながら、事実にもかかわらず、このチェックボックスは確かに私の検査の設定ページに表示されないこと:

enter image description here

このチェックボックスをオンにしても問題は解決しません。私は完全に私が上に掲示したリンクの中で "発生源"が何を意味しているのか、私はいくつかの援助を探しています。

私はIntelliJ 2017.1 Ultimate Editionを実行しています。

+0

「生成済み」とは、* Generated Sources *とマークされたルートに存在する自動的に生成されたソースを意味します。なぜそれがあなたのコードに当てはまるべきだと思いますか?特定のコードフラグメントに対してこの検査を行わない場合は、[抑制する](https://www.jetbrains.com/help/idea/2016.3/suppressing-inspections.html)だけです。 – CrazyCoder

+0

ああ、そのリンクは多少役に立ちましたが、この特定のエラーのために、intelliJは私に古典的な電球のポップアップ方法を与えていなかったので警告を抑制することはできません。https://www.dropbox.com /home/Screenshots?preview=inspectionCannotBeSuppressed.png。詳細は以下のレスポンスを参照してください。 – Jason

答えて

0

私は上記のCrazyCoderの応答@を使用して見つけたとのIntelliJによって提供されるように、いわゆる「コード分析」を実行し、次の機能が見つかりました:「無効検査」をクリック

enter image description here

を手元の問題を解決しますが、一般的にはこれは望ましくありません。同じソースファイルメソッドに対してこの弱い警告をどうにかしておくことができれば本当に好きです。 publicのクラス定義に渡ってコードを複製すると、通常、この場合のように私が何をしているのか分かります。

関連する問題