java - 我们如何在 main 方法中通过其他方法更新 boolean 值

标签 java

请忽略格式和句子相关的问题。

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/

相关文章:

java - 如何检测java扫描仪中的空行

java - Joda-Time 自纪元以来的天数

java - 进程内存使用

java - 什么是好的 java make 实用程序?

java - 拦截 LDAP 以收集统计信息

java - 如何让 Java 线程等待另一个线程的输出?

java - 如何使 Jackrabbit WebDAV servlet 允许使用 Microsoft Word 进行编辑?

java - 带有 Java 的 Selenium Webdriver : How to select a random birth month and a random country from drop-down select options menu

java - 如何使用 Paint() 和 run() 或其他方法保留以前的更改

java - Map Reduce输出文件为空