Java 忽略方法()的结果

Java 忽略方法()的结果,java,Java,我试图更改传递给Klasa.method()函数的静态变量的值,但遗憾的是,返回值被忽略 package.com公司; 公务舱{ 公共静态int metoda(int x){ x+=2; 返回x; } } 公共班机{ 公共静态int i=10; 公共静态void main(字符串…参数){ System.out.println(Main.i); 克拉萨·梅托达(一); 系统输出println(Klasa.metoda(i)); 系统输出打印LN(i); } } 您对Java的工作原理有误解。。。

我试图更改传递给
Klasa.method()
函数的静态变量的值,但遗憾的是,返回值被忽略

package.com公司;
公务舱{
公共静态int metoda(int x){
x+=2;
返回x;
}
}
公共班机{
公共静态int i=10;
公共静态void main(字符串…参数){
System.out.println(Main.i);
克拉萨·梅托达(一);
系统输出println(Klasa.metoda(i));
系统输出打印LN(i);
}
}

您对Java的工作原理有误解。。。将i传递给方法不会更改i的值,因此您已将方法返回的值重新分配给i:

i = Klasa.metoda(i);

您只是将i的值传递给您的方法。你可以通过简单的改变来解决它

Klasa.metoda(i);


你选错语言了。
metoda
中的
x
是按值复制的。您得到了什么输出,它与您期望的有什么不同?您打印出
i
,因此它打印
10
。您打印出方法的返回值,因此它将打印
12
。然后您再次打印出
i
,因此它再次打印出
10
。你怎么搞糊涂了?哦,我知道你在想通过参考传递。我们有一个标准。是的,我想通过引用传递,谢谢查理
i = Klasa.metoda(i);