有沒有辦法來克服在匿名內部類中訪問的變量必須是最終的事實?克服匿名類中的最終變量
例如我有一個按鈕,應該隨時報告列表的大小。在while循環以後的list
應該得到修改,並在每個週期list
將新實例化的,如果list
是最終
// has to be final
final ArrayList<String> list = new ArrayList<String>();
MyButton button = new MyButton() {
@Override
public int getValue() {
return list.size();
}
};
while (true) {
// modify/re-assign list
}
做到這一點的方法是使list
一個靜態變量,這是不可能的,但那不是最佳。有沒有另一種方法可以克服這一點?
該列表不一定是靜態變量。它只需要是按鈕有權訪問的對象的可變字段。 –
你真的需要重新分配嗎?或者你可以清除它並更新它嗎? – khelwood
@ khelwood不,不是真的。我只是假設創建一個新實例會更快。 – TomTom