请忽略格式和句子相关的问题。
class ABC
{
public void change(Boolean x, Boolean y, StringBuffer s)
{
x=true;
y=true;
s.append("vinay");
}
public static void main(String a[])
{
Boolean x = false;
Boolean y = false;
x=false;
y=false;
StringBuffer s = new StringBuffer();
s.append("jasi");
ABC p= new ABC();
p.change(x,y,s);
System.out.println(x);
System.out.println(y);
System.out.println(s);
}
}
我想得到我在 change() 方法中为 boolean 值 x,y 在 main() 方法中所做的所有更改,因为我们在 main 函数中修改了 s。 有什么方法可以在main方法中获取修改后的值。
最佳答案
Java 按值 传递参数,因此调用者看不到在 change()
方法中所做的所有更改。
为了做你想做的事,你可以:
1. 将此变量定义为类成员。
2.将它们作为方法的返回值返回。是的,你只受一个返回值的限制,但如果你想创建 boolean 数组或创建包含两者的特殊类。
3.您可以传递给包含 boolean 值的方法可变容器。其中一种方法是为此使用 AtomicBoolean
:
public void change(AtomicBoolean x, AtomicBoolean y, StringBuffer s) {
x.set(true);
y.set(true);
s.append("vinay");
}
public static void main(String a[]) {
AtomicBoolean x = new AtomicBoolean(false);
Boolean y = = new AtomicBoolean(false);
change(x, y);
System.out.println(x.get() + ", " + y.get()); // will print true true
}
关于java - 我们如何在 main 方法中通过其他方法更新 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271949/