执行以下操作的原因是什么:
public void processSomething(final String hello, final String two, final Car car){}
而不是:
public void processSomething(String hello, String two, Car car){}
答案 0 :(得分:27)
这意味着在方法中,您无法为参数指定新值。
想要这样做的一个常见原因是能够使用anonymous inner classes中的参数,这些参数只能引用final
局部变量,包括参数。
这样做的另一个原因是,如果您的编码风格有利于将所有局部变量声明为最终的,那么可能。 (就个人而言,我试图将视为最终版本,但是要避免实际声明它们,因为它会增加残障。)
答案 1 :(得分:6)
这意味着您无法更改引用。字符串是不可变的,但如果Car是可变的,你可以更改该Car中的字段,你不能将它改为另一辆Car。
答案 2 :(得分:0)
这意味着无法在方法中更改此Object的引用。
答案 3 :(得分:0)
这意味着您无法更改引用,但它无法阻止对象被更改。