方法中的最终变量

时间:2012-03-13 23:51:58

标签: java access-modifiers

在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, 

如果method2()为每个输入返回不同的列表,上面的代码是否有效(相对于最终修饰符?)

1 个答案:

答案 0 :(得分:6)

是的,绝对的。 final 表示特定变量无法分配不同的值。

如果您有多次调用该方法(无论是通过递归还是多个线程),那么这些都是完全独立的变量。