声明集合final
并不会取消其任何功能(仍然可以add
,remove
,clear
,get
等。 )但允许编译器进行更多优化。
在什么情况下更改引用(不允许使用final)而不是使用现有集合的方法?
答案 0 :(得分:1)
如果您希望稍后修改其值,则不应声明变量final
。对于集合,如果您计划替换集合的整个引用,则可以不将其标记为final
。
// Plan to change collection
List<Integer> intVals = new ArrayList<>();
// later in your code
intVals = getOtherValuesInstead();
如果绝对不希望引用更改,则应声明final
。这是更典型的方法;正如您正确描述的那样,因为您可以将值添加到集合 ,所以您不应该在 更改其引用的场景中找到自己。
答案 1 :(得分:0)
什么时候应该将Java集合不宣布为最终版?
几乎在所有情况下,除非您特别想要确定该对象永远不会被更改。
您应该 在需要时使用final
。在您执行需要时有很多情况,但默认情况下不应使用final
。