2

たとえば、IntelliJ はインスタンス変数に静的スリープ メソッドを表示しません。

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

睡眠は z 変数の一部であるように見えます

Eclipse がインスタンス変数に静的メソッドを表示しないようにするにはどうすればよいですか? そして、可能であれば、Eclipse とコマンドラインでそれをコンパイル エラーにする方法は?

4

3 に答える 3

4

オプションから削除できるかどうかはわかりませんが、Eclipse でエラーが発生するようにすることはできます。

設定 -> Java -> コンパイラ -> エラー/警告 -> 静的メンバーへの非静的アクセス -> エラーとして設定。

ここに画像の説明を入力

于 2012-05-14T08:32:23.250 に答える
1

これはおそらく回避策ですが、アクションの保存( [設定] -> [Java] -> [エディター] -> [アクションの保存] ) で、「<em>宣言型を使用して静的メンバーへの非静的アクセスを変更する」ように依頼できます。これにより、そのような使用法が自動的に削除されます。 .

また、Eclipse は通常、最初に静的提案を提案しません。その場合は、Content Assistの設定を確認する必要があります ( Preferences->Java->Editor->Content Assist )。特に、 [提案の並べ替え] が [関連性による<em>] に設定されていることを確認してください。

于 2012-05-14T09:24:47.823 に答える
0

オブジェクトにはクラスがあるため、コマンドラインからコンパイルエラーにすることはできません。このオブジェクトでは、このオブジェクトだけでなく影響を受ける静的メソッドを呼び出すことができます。このグローバルな影響のために、オブジェクトからではなくクラスから静的メソッドを呼び出す方が優れた設計です。そのため、IntelliJはこれを防ぎます。

于 2012-05-14T08:34:31.923 に答える