コードでクラスフィールド値を設定するには、リフレクションを広範囲に使用します。フィールドはコードでアクセスされますが、リフレクションを介して以外は割り当てられません。したがって、IDEAは「割り当てられない」という警告を表示します。 IDEAに検査を抑制するように依頼すると、挿入されます
@SuppressWarnings({"UnusedDeclaration"})
ただし、これにより、フィールドが使用されているかどうかのチェックも無効になります。これは望ましくありません。
とにかく「未割り当て」チェックのみを無効にし、特定のフィールドのみに「未使用」チェックを残すことは可能ですか?
IDEAバージョンは10.5
注釈を使用して、挿入されたフィールドとしてマークできます。 (@EJB
の処理方法と同様)。 IntelliJインスペクション(少なくともバージョン10.5を使用)では、独自の注釈を設定して、フィールドが挿入されていることを示すことができます。
メニューから[分析]、[コードの検査]を選択し、未使用の宣言検査に移動すると、注釈を構成できます。
Android Studio 1.1.0でコードを検査した後に注釈を構成するには、[未使用の宣言]-> [設定の編集]-> [注釈の構成]をクリックします。
アクションヒントウィンドウ(Macの場合はAlt + Enter)をポップアップすると、Injectアノテーションの警告を抑制することを推奨するはずです。
いいえ、IDEAの検査はそれほどきめ細かいものではないようです。注釈ベースの依存性注入フィールドを使用しても、@Inject
注釈が付けられたフィールドに対して同じ警告を抑制することができます。 「使用されません」という警告は自動的に抑制されます。
クラスに対してFindBugs-IDEAを実行しようとしましたが、警告やエラーは発生しませんでした。
設定->エディタ->検査->宣言の冗長性->未使用の宣言->エントリポイント->注釈
新しいポップアップが開き、「注釈が付いている場合はエントリポイントとしてマークする」と「注釈が付いている場合は暗黙的に書き込まれるフィールドをマークする」という2つの異なる領域に分割されます。 後者のみ「+」アイコン(注釈クラスの追加)をクリックし、自動配線注釈(または依存性注入に使用している注釈)を選択します。
これにより、「プライベートフィールドは割り当てられません」という警告は無効になりますが、クラスコードでフィールドを使用しない場合は「プライベートフィールドは使用されません」という警告は無効になりません。
これはIntelliJで機能しましたIDEA Community Edition 2018.3.3