在方法签名中有一个最终输入参数是什么意思?

时间:2011-06-28 10:15:06

标签: java methods input final

执行以下操作的原因是什么:

public void processSomething(final String hello, final String two, final Car car){}

而不是:

public void processSomething(String hello, String two, Car car){}

4 个答案:

答案 0 :(得分:27)

这意味着在方法中,您无法为参数指定新值。

想要这样做的一个常见原因是能够使用anonymous inner classes中的参数,这些参数只能引用final局部变量,包括参数。

这样做的另一个原因是,如果您的编码风格有利于将所有局部变量声明为最终的,那么可能。 (就个人而言,我试图视为最终版本,但是要避免实际声明它们,因为它会增加残障。)

答案 1 :(得分:6)

这意味着您无法更改引用。字符串是不可变的,但如果Car是可变的,你可以更改该Car中的字段,你不能将它改为另一辆Car。

答案 2 :(得分:0)

这意味着无法在方法中更改此Object的引用。

答案 3 :(得分:0)

这意味着您无法更改引用,但它无法阻止对象被更改。