一尘不染

Java 方法参数中的final关键字

java

我经常遇到如下所示的方法:

public void foo(final String a, final int[] b, final Object1 c){
}

如果在未传递最终参数的情况下调用此方法会发生什么。例如,可以将稍后更改的Object1(因此未声明为final)传递给此方法


阅读 692

收藏
2020-03-24

共1个答案

一尘不染

Java总是在将参数发送给方法之前先对其进行复制。这意味着最终的调用代码没有任何区别。这仅意味着无法在方法内部重新分配变量。(请注意,如果你有最终对象,则仍然可以更改对象的属性)。

2020-03-24