【发布时间】:2011-06-28 10:15:05
【问题描述】:
执行以下操作的原因是什么:
public void processSomething(final String hello, final String two, final Car car){}
相对于:
public void processSomething(String hello, String two, Car car){}
【问题讨论】:
执行以下操作的原因是什么:
public void processSomething(final String hello, final String two, final Car car){}
相对于:
public void processSomething(String hello, String two, Car car){}
【问题讨论】:
这意味着你不能改变引用,但它不能阻止对象被改变。
【讨论】:
表示在方法内,不能给参数赋值。
想要这样做的一个常见原因是能够使用anonymous inner classes 中的参数,这些参数只能引用final 局部变量,包括参数。
这样做的另一个原因是,如果您的编码风格倾向于尽可能将 all 局部变量声明为 final。 (就我个人而言,我尝试将它们处理作为最终结果,但实际上避免以这种方式声明它们,因为这会增加麻烦。)
【讨论】:
这意味着您不能更改引用。 String 是不可变的,但如果 Car 是可变的,则可以更改该 Car 中的字段,但不能将其更改为另一个 Car。
【讨论】:
const 不同的地方。
表示这个Object的引用不能在方法内改变。
【讨论】: