web-dev-qa-db-ja.com

IntelliJで「変数が割り当てられない」という警告を抑制IDEA

コードでクラスフィールド値を設定するには、リフレクションを広範囲に使用します。フィールドはコードでアクセスされますが、リフレクションを介して以外は割り当てられません。したがって、IDEAは「割り当てられない」という警告を表示します。 IDEAに検査を抑制するように依頼すると、挿入されます

@SuppressWarnings({"UnusedDeclaration"})

ただし、これにより、フィールドが使用されているかどうかのチェックも無効になります。これは望ましくありません。

とにかく「未割り当て」チェックのみを無効にし、特定のフィールドのみに「未使用」チェックを残すことは可能ですか?

IDEAバージョンは10.5

48
kabra.dabar

注釈を使用して、挿入されたフィールドとしてマークできます。 (@EJBの処理方法と同様)。 IntelliJインスペクション(少なくともバージョン10.5を使用)では、独自の注釈を設定して、フィールドが挿入されていることを示すことができます。

メニューから[分析]、[コードの検査]を選択し、未使用の宣言検査に移動すると、注釈を構成できます。

50
Jeff Foster
  1. 分析の実行:分析>コードの検査...
  2. 未使用の宣言(宣言の冗長ツリーノードの下)を右クリックします。
  3. 「注釈の構成...」をクリックします
  4. Com.google.google.inject.Injectおよびjavax.inject.Injectを追加します
23
Jeremy Chone

Android Studio 1.1.0でコードを検査した後に注釈を構成するには、[未使用の宣言]-> [設定の編集]-> [注釈の構成]をクリックします。

Android Studio 1.1.0

Android Studio 1.1.0

9
tagy22

アクションヒントウィンドウ(Macの場合はAlt + Enter)をポップアップすると、Injectアノテーションの警告を抑制することを推奨するはずです。

5
Iliiaz Akhmedov

いいえ、IDEAの検査はそれほどきめ細かいものではないようです。注釈ベースの依存性注入フィールドを使用しても、@Inject注釈が付けられたフィールドに対して同じ警告を抑制することができます。 「使用されません」という警告は自動的に抑制されます。

クラスに対してFindBugs-IDEAを実行しようとしましたが、警告やエラーは発生しませんでした。

4
Boris Pavlović

設定->エディタ->検査->宣言の冗長性->未使用の宣言->エントリポイント->注釈

新しいポップアップが開き、「注釈が付いている場合はエントリポイントとしてマークする」と「注釈が付いている場合は暗黙的に書き込まれるフィールドをマークする」という2つの異なる領域に分割されます。 後者のみ「+」アイコン(注釈クラスの追加)をクリックし、自動配線注釈(または依存性注入に使用している注釈)を選択します。

これにより、「プライベートフィールドは割り当てられません」という警告は無効になりますが、クラスコードでフィールドを使用しない場合は「プライベートフィールドは使用されません」という警告は無効になりません。

これはIntelliJで機能しましたIDEA Community Edition 2018.3.3

0
Bruno 82