Boolean a = new Boolean(true);
现在还是这个对象,不想再new一个新对象了,比如 a = new Boolean(false)
如何把这个对象表示的ture变为false呢?(因为这个对象要在好多的类中用,所以不能再new新的了,这个Boolean对象在类间共享)

解决方案 »

  1.   

    定义也不用那麻烦,
    boolean a = true;就得,
    下面要改变
    直接 a = false;
      

  2.   

    直接 a = false; 就可以还有貌似没必要用Boolean吧???
    直接用boolean不可以么???
      

  3.   

    这位仁兄为什么要new呢,一般boolean都直接当基本类型来用就可以了啊。
    boolean a=true;
    a=false;相当好用啊,为什么要用Boolean呢?
      

  4.   

    因为我说过了,这个Boolean是类之间共享的,
    比如:
    class A{
      Boolean flag = true;
      A(Boolean flag){
        this.flag = flag;
      }
    }
    class B{
      Boolean flag = true;
      B(Boolean flag){
        this.flag = flag;
      }
    }
    class Main{
      public static void main(){
        Boolean flag = true;
        A a = new A(flag);
        B b = new B(flag);
        //我想一次性的把三个类中的flag全变成假
        //flag = false;这样一定不行,这样只是new 了一个新的 Boolean(false)
      }
    }
      

  5.   

    这样问一下吧,对象之间共享(甚至是线程之间共享的)的flag,如何实现共同翻转呢?一起变成false!!
      

  6.   

    boolean b = true;
    ....
    ...
    ..
    b=false;共享的对象最好是注意下是否使用多线程,如果不使用可以使用单态。
      

  7.   

    不用了,我另想办法吧,或者在一个线程去interrupt另一个线程可以试试
      

  8.   

    你可以把boolean值封装到一个单独的类里,然后实例化再分发给需要的对象。这样就能实现同时修改了
      

  9.   

    下面是我实验的代码:
    public class BooleanTest { public static void main(String[] args) {
    BooleanInfo bi = new BooleanInfo(true);
    Class_1 c1 = new Class_1(bi);
    Class_2 c2 = new Class_2(bi);
    System.out.println(c1.toString() + " " + c2.toString());
    bi.setB(false);
    System.out.println(c1.toString() + " " + c2.toString());
    }
    }class Class_1 {
    private BooleanInfo bi; public Class_1() {
    bi = new BooleanInfo();
    } public Class_1(BooleanInfo bi) {
    this.bi = bi;
    } public BooleanInfo getBi() {
    return bi;
    } public void setBi(BooleanInfo bi) {
    this.bi = bi;
    } public String toString() {
    return "Class_1's BooleanInfo: " + this.bi.toString();
    }
    }class Class_2 {
    private BooleanInfo bi; public Class_2() {
    bi = new BooleanInfo();
    } public Class_2(BooleanInfo bi) {
    this.bi = bi;
    } public BooleanInfo getBi() {
    return bi;
    } public void setBi(BooleanInfo bi) {
    this.bi = bi;
    } public String toString() {
    return "Class_2's BooleanInfo: " + this.bi.toString();
    }
    }class BooleanInfo {
    private boolean b; public BooleanInfo() { } public BooleanInfo(boolean b) {
    this.b = b;
    } public boolean getB() {
    return b;
    } public void setB(boolean b) {
    this.b = b;
    } public String toString() {
    return new String().valueOf(b);
    }
    }
      

  10.   

    要是你在JDK1.4环境中可能会有问题,但是JDK5可以帮你自动装箱(autoboxing),就是说基本数据类型 和对象类型之间自动转换,搂住要在不创建新的对象情况下改变其值,直接赋值就搞定啦。//JDK5
    Boolean b=new Boolean(true);
     b=false;
      

  11.   

    还是我来说吧,记得给我分啊!!!
    首先,你可以:
    Boolean a = new Boolean(true);
    那个时候,a是true;
    当你想要 a为false的时候;a = Boolean.valueOf(false); 在想要a = true 时a = Boolean.valueOf(ture);静态方法Boolean.valueOf(boolean b);
    返回的是一个指定的布尔值b 的Boolean 的对象实例
    哇哈哈哈哈哈哈哈记得给我分啊!!!!
    不给我分举报你!!!!
    哇哈哈
      

  12.   

    用Boolean的话永远不要new,请直接使用Boolean.TRUE和Boolean.FALSE这两个类常量。
    这样是不是就解决问题了?
      

  13.   

    一般情况下,一个变量要在多个类中共享的话,可以把它在一个Defines类中定义成static,这样,当你改变它的时候就全局改变了.public class Defines{
      public static Boolean a = new Boolean(true);
    }
    class  A{
      public static void main(String []args){
        B.changeA();
        //这时Defines.a就为false了;
      }
    }
    //改变a的值
    class B{
      public static void changeA(){
        Defines.a = flase;
      }
    }
    你试试看--!
      

  14.   


    对象间共享不要直接用boolean, 可以写一个类来包装。class SharedData{
        boolean b;
    }对象间共享这个类的对象就可以了。
      

  15.   

    采用静态常量就可以了,静态常量存放在栈中,读取的速度快,而且如果你的栈中有了"true"或者"false"的话,不管你定义多少个值为"true"或者"false"的变量,那些变量的值在内存就有两个,不会有更多的。静态常量用类包装了,不就用你所谓的对象的效果了,还不用new类的对象。
      

  16.   

    ClassA:中
        public boolean b = true;ClassB:中
       ClassA  c =  new ClassA()
       System.out.println(c.b);
       c.b=false;
       System.out.println(c.b);
      

  17.   

    class A{public static boolean b =true;}
    class B{public static void main(String [] args){A.b=false;System.out.println(A.b)}}
      

  18.   


    我认为我说的没有问题。
    你不就是希望变量的值被改变吗?
    原来是
    Boolean a = new Boolean(true);
    a = new Boolean(false);现在是
    Boolean a = Boolean.TRUE;
    a = Boolean.FALSE;搂主对这个有什么疑问?
      

  19.   

    源码:
     public static final Boolean TRUE = new Boolean(true);
     public static final Boolean FALSE = new Boolean(false);
      

  20.   


     这位仁兄说的对..如果你只是对象间共享,可以用STATIC!!
      

  21.   

    static有致命弱点
    比如
    class Main{A a1, A a2} 
    class A{static boolean flag} 
    class B{A.flag} 
    classC{A.flag}如果a1的flag变了 a1的B C也变了,这是对的.
    a1的flag变了,a2的B C    !?!?!?!?!?!??!?!