小编典典

方法参数中的final关键字

all

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

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

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


阅读 68

收藏
2022-08-24

共1个答案

小编典典

Java 总是在将参数发送到方法之前制作一个副本。这意味着 final 对调用代码没有任何区别。这仅意味着在方法内部不能重新分配变量。

请注意,如果您有最终对象,您仍然可以更改对象的属性。这是因为 Java
中的对象实际上是指向对象的指针。并且只有指针被复制(并且将在您的方法中是最终的),而不是实际的对象。

2022-08-24