我要在一个函数中回传2个变量,一个是String,一个是布尔型返回值使用String,所以这个布尔型我打算用参数来回传。我先写成这个样子
public String function_name(boolean isAllowTryAgain);
无论这个函数里面怎么变化,都不会改变isAllowTryAgain在外面的值。后来我又改成
public String function_name(Boolean isAllowTryAgain);
注意这个是大写的Boolean,完了,查了jdk,没有发现什么可以修改Boolean的内部值的method,
怎么办?难道要自己写一个类不成?

解决方案 »

  1.   

    你们怎么处理这种情况?是不是非要新写一个类阿?如果Boolean作为一个类,都不能改变值,要他何用?有boolean不就可以了?
      

  2.   

    Boolean 确实用处不大,但是我们不能把boolean 放到容器里面
    String 也是不可变的,难道也没用吗,String是用的最多的
      

  3.   

    对你的问题我有个解决方案,可能不是最好的,因为我学java时间也不是很长,交流一下。
    把isAllowTryAgain设为类的一个boolean参数,进入函数时,加this.isAllowTryAgain,就可以改变它的值。
      

  4.   

    我问了老大,老大叫我返回一个Map,也能解决问题,不过觉得使用字符串来取数值,不够严谨。
      

  5.   

    索性返回值返回一个Object()数组,或者String()数组好了,然后在程序外再根据返回值重新对原来的布尔变量赋值
      

  6.   

    方法1. 将布尔变量设为成员变量方法2.设计一个class
     class A{
       String s;
       boolean b
    }
    让你的方法返回这个类的一个实例
      

  7.   

    JAVA中的参数使用有这么一条规则:
       任何一个函数都无法改变一个基本类型的参数(以对像作为参数则是可以改变的,因为对像的参数的传值方式类似于引用参数传值,传过去的是一个对像的引用)
      

  8.   

    基本型别传值,对象传引用。
    Boolean作为一种外覆型别可以将其对象置入容器中,基本型别是不行的(JDK1.5以前是不行的)。
      

  9.   

    private String yourString;
    private boolean yourbool;
    public void function_name()
    {
    yourString=....
    yourbool=....
    };
    public String getYourString(){
    return yourString;
    //or 
    // return this.yourString;
    }一般来说,你的参数是对应与某个类的,你要的参数完全可以放到类的变量里面去,如果你不愿意,那你最好把你要的参数放到一个bean中,然后你的函数返回这个bean。
    这说白了也就是一个变量作用域的问题,你写在函数接口里的数是不会变化的。