Java 标记方法参数最终值

Java 标记方法参数最终值,java,Java,在本例中,声明对象final提供了什么值 private void doSomethingClever(final Object o) { } 这样做的目的是,它允许访问您的代码的其他人知道参数不能更改。如果编译器设置了值,则会导致编译器错误。您将无法在方法中分配给o 当有一个内部类(如listener或某个可运行类)访问这个局部变量时,它非常有用 也就是说,使用它告诉读者和编译器 将不会在方法中修改参数 有用的链接: 老实说,我真的不明白在方法参数中使用final的意义。final只

在本例中,声明
对象final
提供了什么值

private void doSomethingClever(final Object o) {

}

这样做的目的是,它允许访问您的代码的其他人知道参数不能更改。如果编译器设置了值,则会导致编译器错误。

您将无法在方法中分配给
o

当有一个内部类(如listener或某个可运行类)访问这个局部变量时,它非常有用

也就是说,使用它告诉读者和编译器 将不会在方法中修改参数

有用的链接:


老实说,我真的不明白在方法参数中使用final的意义。final只能保证变量不会指向另一个对象,而不是对象本身不可变。。。您可以更改对象o的状态,但不能将o指定给另一个对象,如B

o = new Object();

但援引

o.doSomething();
很好。那么,为什么到处都用难看的最终关键字把代码弄得乱七八糟呢


至于性能优化,我相信即使没有方法参数中的最终关键字,现代编译器也会分析和优化代码。有谁愿意纠正我,因为我不是100%确定这一点

谢谢纳维德。好参考
o.doSomething();