我試圖在一個循環內實現一個內部類,並且進入了一個有趣的狀態。內部類有方法,但是,當我嘗試訪問變量時,Netbeans給我一個編譯器錯誤,並告訴我使int最終。將Regular Int轉換爲最終的Java
由於int是一個循環變量,它不能是最終的。我試圖創建新的變量並將它們等同於循環變量,但這仍會引發相同的錯誤。
下面是基本的語法(僞代碼):
for(int i = 0; i < 10; i++)
{
panels[i].printI(new printI(){System.out.println(i);});
}
任何想法?
難道你不能在循環的第一行使用'final int j = i;'然後將'j'傳遞給'System.out.println '? –
但是,如果我這樣做,那麼循環將無法增加j,因爲值會被鎖定? –
確實如此。請參閱qqilihq的答案。 – captainroxors