在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()为每个输入返回不同的列表,上面的代码是否有效(相对于最终修饰符?)
答案 0 :(得分:6)
是的,绝对的。 final
仅表示特定变量无法分配不同的值。
如果您有多次调用该方法(无论是通过递归还是多个线程),那么这些都是完全独立的变量。