2012-05-14 16 views
2

は例えば、IntelliJのは、z変数Java上のクラスインスタンスで静的メソッドを抑制する方法は?

の一部である

Thread z = new Thread(); 
z.sleep(1000); // Eclipse shows sleep as part of z, while IntelliJ do not 

それはその睡眠を思わ変数インスタンス上の静的な睡眠方法を示していないインスタンス変数の静的メソッドを示すからEclipseを防ぐ方法?そして、できるだけコンパイルエラーをEclipseにして、コマンドラインで行う方法は?あなたはオプションからそれを削除することができますが、そのためのEclipseの歩留まりエラー作ることができます

答えて

4

わからない:

環境設定 - > Javaの - >コンパイラ - >エラー/警告 - 静的メンバへ>非スタティックアクセス - >エラーとして設定します。

enter image description here

0

オブジェクトは、そのクラスがあり、このオブジェクトに静的メソッドを呼び出すことができますので、あなたは、この目的ではないだけに影響を与える可能性があり、そのコマンドラインからのコンパイルエラーにすることはできません。この世界的な影響のため、クラスから静的メソッドを呼び出してオブジェクトから呼び出す方が優れているため、IntelliJはこれを避けます。

1

これは多分回避策の詳細ですが、保存アクションにPreferences-> Javaベース> Editorの>アクションを保存します)[変更非静的宣言する型を使用して静的メンバーにアクセスする」に依頼することができますそのような使用法は自動的に削除されます。

また、Eclipseでは通常、静的プロポーザルを最初に提案していません。その場合はコンテンツアシストの設定(環境設定 - > Java->エディタ - >コンテンツアシスト)を確認する必要があります。特にの提案を並べ替えることは、関連性によってに設定されています。関連性はです。

+0

Eclipseでそのオプションが見つかった場合は+1してください。その場合はEclipse Indigoを使用してください – Hao

+0

完成度の高い提案を関連性によってソートするよう依頼すると、静的メソッド/フィールドがリストの最後に移動します。私はそれらを完全に隠すことはできないと思いますが、[Eclipse Bugzilla](https://bugs.eclipse.org)でリクエストしたいかもしれません。 –