public class test {
public static void main(String[] args) {
boolean flag=false;
char[] c=new char[5];
c[0]='e';
read(flag, c);
System.out.println(c[0]);
System.out.println(flag);
}
public static void read(boolean flag, char[] c){
flag=true;
c[0]='a';
}
}
在上面的代码中,我发现一个有趣的问题:char[] c
已更改并正确打印结果,但 boolean 标志没有更改!我不知道这是怎么发生的?
现在,我也想更改标志,该怎么做?
感谢您的帮助!
最佳答案
boolean 值
按值传递。如果您在 read
方法中更改它,则只会更改本地副本,而不会更改外部值。
但是,对 c
的引用是按值传递的,从而有效地使 c
引用的数组按引用传递。因此,在这里更改 c
的元素确实会影响外部数组。
关于java - 有些参数可以在方法中更改,但有些参数不能在 java 中更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15422562/