【发布时间】:2018-06-17 21:17:39
【问题描述】:
使ArrayList(或其他集合)最终确定有哪些优点/缺点?如果我们尝试这样做会怎样:
final List<Integer> A=new ArrayList<Integer>(1,2,3,4,5);
List<Integer> l=new ArrayList<Integer>(4,8,16);
A=l;
这是有效的吗? 现在引用 A 将指向这个由 l? 指向的 Array 列表。请帮忙。
【问题讨论】:
-
1)
final影响变量,而不是所引用的对象。 2) 不能不允许重新分配给final变量。编译器应该已经说了这么多。 -
stackoverflow.com/a/10380512/2864740(这个答案比问题更笼统),stackoverflow.com/questions/15655012(特定于最终字段,也讨论了对象可变性)
-
另外,
ArrayList没有允许这种用法的构造函数。 -
好的,非常感谢大家的帮助:)