方法参数使用“最终”我认真阅读了这个问题: Can I pass parameters by reference in Java?在Java
什么出来它是参数(不是原语),通过拷贝参考值传递。 就像这个例子所说的那样;你不能修改你给的参数参考:
Object o = "Hello";
mutate(o)
System.out.println(o); // Will print Hello
private void mutate(Object o) { o = "Goodbye"; } //NOT THE SAME o!
可以使用final
这样可以避免这样的问题:
private void mutate(final Object o) { o = "Goodbye"; } //Compilation error
的问题:
- 是的
final
关键字在这种情况下只会用于引发编译错误? - 如果最后不能修改给定参数的引用为什么不是
final
隐式或强制?
我很少用final
在Java方法参数,但现在我不能想,你会主动忽略把final
的方法参数的任何情况。
谢谢!
您避免使用该参数作为方法中的变量,让它简单的读/理解 – 2012-07-31 09:02:09
当您在方法内部创建匿名内部类,你需要做的参数作为'final'在为了在该匿名类中使用它。 – 2012-07-31 09:03:41