我重構一類面向公衆的接口,並考慮使用飛帶領我問:匿名內部類:聲明爲實例變量VS創建於
是什麼聲明中的一些下面的區別較大的類(作爲一個實例變量):
private final OnClickListener mButtonOnClickListener = new OnClickListener() {
@Override
public void onClick(View view) {
//some codes
}
};
VS聲明爲如下(飛)匿名內部類:
private void someFunctionInClass() {
someOtherFunctionThatTakesAnOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//some codes
}
});
}
更多SP特別是,前者依然被認爲是一個匿名的內部類?我在this answer讀到一個匿名內部類
是生成與另一個類的方法的正文中所定義的一個
我給被創建和另一個在主體內限定的第一個例子第二個是類,但不在另一個類的方法中。它仍然是一個匿名的內部類嗎?此外,一個人與另一個人接受的做法是什麼?將一個匿名內部類作爲一個實例變量聲明(我認爲還是這樣)是否更高效,因爲不需要重新創建新對象?
匿名類是一個匿名類。在這兩種情況下,仍然只有*一個* [匿名]類型 - 結果實例的使用與類型本身無關。 – 2013-03-21 20:12:22