2016-09-18 8 views
0

Eclipseは自動でJavaを持っていることが呼ばれるクリーンアップ:EclipseのJavaのクリーンアップ機能

直接アクセスする静的メンバへの変更間接アクセス(サブタイプを通じてアクセス) "`

何それが意味

編集:?

変更非静的である別のものがあることに注意してください宣言型を使用した静的メンバーへのアクセス

したがって、私のお問い合わせの件名はこれと異なる必要があります。

これらはWindowsの下にあるので、ほとんど見つけられないWindows > Preferences > Java > CodeStyle > Clean-Upにあります。

+0

静的メンバーは、宣言されているクラスを介して呼び出されます。 – user1803551

+0

私の編集をご覧ください。私はすでにそれを行うものがあると思います。 – H2ONaCl

+0

コメントはまだありません。両方の説明については私の答えを見てください。 – user1803551

答えて

1

は、あなたが直接アクセスする静的メンバーへの間接的なアクセスは、(サブタイプを通じてアクセス)クラス

class A { 

    static int i; 
} 

その後

変更

はあなたが持っている場合を指していたと別のクラス

class B extends A {} 

と静的メンバは、それが宣言されていているクラスを介してアクセスされます(私は私のコメントで書いたように)ので、クリーンアップが

A.i = 2; 

に変更します。その場合には

B.i = 2; 

を書きます(A)、それを継承するクラスではありません(B)。宣言する型

を使用して静的メンバーに非静的アクセス

変更は、クリーンアップが

A.i = 2; 
に変更します。その場合には

A a = new A(); 
a.i = 2; 

を書く場合を指し、

静的メンバーはクラス(クラス(a)のインスタンスではなく、クラスのインスタンス()を返します。

1

これは、1つのクラスに静的メソッドがあり、サブクラスの名前を使用して呼び出す場合を修正します。だから、静的メソッドは

SuperClass.someStaticMethod(); 

かもしれないが、あなたはそれがあなたの代わりにmyObject.someStaticMethod();のように、静的メソッドを呼び出し、別のクリーンアップ、に似ていること

SubClass.someStaticMethod(); 

注意として、それを参照しましたTheClass.someStaticMethod();。カッコ内の部分は、それが「サブタイプを通したアクセス」クリーンアップであることを示しています。

0

静的変数/メソッドは、定義されているクラスではなくオブジェクトを通じて呼び出すことにします。 '宣言型で'と言うときは、変数/メソッドをクラス変数/メソッドとして宣言したことを意味し、それを呼び出す必要があります。

+1

しかし、それは2番目のように聞こえる。 – H2ONaCl

+0

注意深く読めば、両方のエラーが同じことを言っています。コンパイラには、さまざまな構文エラーによって引き起こされる複数の構文エラーメッセージがあります。単一の構文エラーが2つの異なるエラーメッセージを引き起こすことがあります。 –

+1

これはエラーではありません。彼らは清掃手続きです。複数の手順がある場合は、それらが異なる必要があります。 – H2ONaCl

関連する問題