2012-03-13 86 views
1

在java中,如果一個方法有一個最終變量(非靜態),並且如果我多次調用該方法,那麼每個調用中最終變量的值是否可以不同?方法中的最終變量

public void method1(String msg){ 
     final ArrayList<MessageObject> list = method2(msg); 
     // code that uses list (example just prints) 
} 

method1("one") 
method1("two") are two calls, 

如果方法2()爲每個輸入返回不同的列表,是上述代碼有效

+1

想到函數堆棧調用方法時 - 一旦完成變量是kaput – 2012-03-13 23:58:27

回答

6

是的,絕對。 final只有表示該特定變量不能被分配不同的值。

如果您有多次調用方法(無論是通過遞歸還是多個線程),那些都是完全獨立的變量。

1

問題1(相對於最終改性劑):在java中,如果一個方法具有最終可變(不是靜態的),如果我多次調用該方法,最終變量在每個調用中是否有不同的值?

答案1:是的,最終的變量在每個調用中可以有不同的值。

問題2:如果方法2()爲每個輸入返回不同的名單,是上面的代碼有效

答案2(相對於最後的修改?):我完全不明白這個問題, 。

+0

其實,你的答案1回答問題2。 這只是我正在處理的代碼段。 +1 – sravanreddy001 2012-03-14 20:49:42