Eclipse有一個自動的Java清理被稱爲:靜態成員直接訪問Eclipse的Java的清理功能
變化間接訪問(通過亞型訪問)「`
是什麼這意味着
編輯:請注意,還有另外一個是
改變非靜態使用聲明類型訪問靜態成員
所以我的詢問的主題必須與此不同。
這些在Windows > Preferences > Java > CodeStyle > Clean-Up
這幾乎是不可能找到,因爲它在Windows
。
Eclipse有一個自動的Java清理被稱爲:靜態成員直接訪問Eclipse的Java的清理功能
變化間接訪問(通過亞型訪問)「`
是什麼這意味着
編輯:請注意,還有另外一個是
改變非靜態使用聲明類型訪問靜態成員
所以我的詢問的主題必須與此不同。
這些在Windows > Preferences > Java > CodeStyle > Clean-Up
這幾乎是不可能找到,因爲它在Windows
。
假設你有類
class A {
static int i;
}
然後
改變靜態成員直接訪問間接訪問(通過亞型訪問)
指的是你有一個案例另一類
class B extends A {}
,寫
B.i = 2;
在這種情況下,清理將其更改爲
A.i = 2;
,因爲(我在評論中寫道)的靜態成員將通過在它的聲明的類訪問(A
),而不是通過繼承它的類(B
)。
靜態成員改變非靜態訪問使用聲明類型
指的是你寫
A a = new A();
a.i = 2;
在這種情況下,清理將其更改爲
A.i = 2;
的情況下,
由於靜態成員將通過類訪問(A
)而不是通過類的實例(a
)。
這解決了在一個類中有靜態方法的情況,但是您使用子類的名稱來調用它。所以,靜態方法可能是
SuperClass.someStaticMethod();
但你引用它作爲
SubClass.someStaticMethod();
注意,它類似於另一清理,在那裏你在的地方調用靜態方法,如myObject.someStaticMethod();
TheClass.someStaticMethod();
。圓括號中的部分表示它是「通過子類型訪問」清理。
靜態成員將通過它聲明的類來調用。 – user1803551
請參閱我的編輯。我認爲有一個已經做到了。 – H2ONaCl
我的評論依然存在。請參閱我的回答以獲取有關兩者的解釋。 – user1803551