什么时候不应该将Java集合声明为final?

时间:2018-04-10 15:34:41

标签: java collections final

声明集合final并不会取消其任何功能(仍然可以addremoveclearget等。 )但允许编译器进行更多优化。

在什么情况下更改引用(不允许使用final)而不是使用现有集合的方法?

2 个答案:

答案 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