2016-08-11 27 views
2

私は最近、EclipseからIntelliJ IDEAに切り替えました。私は検査官が本当に好きです。私は私が解決することができませんことを彼らとの問題に遭遇した:IntelliJはAPIメソッドの未使用の警告を抑制します

私はそのようにマークされている他のプロジェクトでのAPIとして使用されているいくつかのJavaプロジェクト、したがって、それは未使用のメソッドが含まれ、持っている: Unused warning

をどのように私はAPIメソッドのためにこれを抑制することができますか? @SuppressWarnings("unused")の代わりに、メソッド内の未使用の警告に関する警告が表示されず、このメソッドが現在のプロジェクトで使用されているのではなく、API用に設計されていることが読者に明示されていないためですか?

答えて

4

@あなたのクラスにインターフェイスを実装させるための@セバスチャンの提案は、おそらく良い設計の観点からこの問題を解決する最良の方法です。しかし、それが実用的でない場合は、代替案があります。

"未使用宣言"検査では、無視するエントリポイントを設定できます。その一環として、あなたは、「注釈を設定することができます。

Unused declaration Inspection Settings

ただ、どちらか、あなたとあなたの公開APIのメソッドに注釈を付けるアノテーションを使用して検査を設定、作成したライブラリまたは1から1。例えば、ここに私が作成した@PublicApi注釈を使用しました。方法がではなく、は未使用として強調表示されています。しかしfoo文字列はまだ未使用として強調表示されています:

Code sample screenshot with annotation

ダイアログ設定を開くに代わる方法として、そしてあなたのプログラミングflowへの影響を制限するには、あなたもクイックフィックスの意図を使用することができます 「使用されていない宣言」設定に目的の注釈を追加します。希望アノテーションで注釈を付けた後、ハイライト表示され、未使用の方法(またはクラス)名の上にカーソルを置き、そして + 入力しAltキーを経由して「意図行動とクイックフィックス」のポップアップを呼び出すまたは⌘(または電球アイコンQuick Fix Iconをクリック)を選択することによって「によって注釈メソッド 『{注釈}』の抑制:

Quick Fix Screenshot

0

要するに、これはIntelliJ、Javacとはまったく関係がありません。Javaコンパイラは、要求した場合にこれらを生成します。 メソッドにこの注釈が必要な場合は、メソッド全体に適用されます。あなただけの、その後それが可能である、フィールドが注釈を付けることを希望する場合は:要するに

@SuppressWarnings("unused") 
int iii = 0; 

、メソッドアノテーションはフィールドまたは命令ごとにそれを置くことはその単一ラインをカバーする、方法全体をカバーします。

1

クラスのインターフェイスを作成します。インタフェースメソッドを実装するメソッドは未使用としてマークされません。代わりに、インターフェイスからの未使用のメソッドは未使用としてマークされていますが、ここでは安全に@SuppressWarnings("unused")を使用することができます。メソッド本体がないからです。インターフェイス全体の上に@SuppressWarnings("unused")と書くこともできます。

0

intellijはあなたのためにこれを行うことができます。ちょうどヒットAlt +あなたに警告を与える発生を入力してください。いくつかの提案は、フィールドの1つを削除するポップアップ表示されます。提案の最後に矢印フィールドが表示されます。矢印キーを使用してオプションに移動し、右矢印を使用して別のメニューを表示します。私は盲目的にのIntelliJによって提供されている警告に耳を傾けるためにあなたを促すといないする必要がしかし

//noinspection unused 
int iii = 0; 

:オプションのいずれかの方法でこれを抑制し、声明のためにこれを抑制することになるなど 文の抑制は、この原因となりますそれらを抑制する。

関連する問題