我要在一个函数中回传2个变量,一个是String,一个是布尔型返回值使用String,所以这个布尔型我打算用参数来回传。我先写成这个样子
public String function_name(boolean isAllowTryAgain);
无论这个函数里面怎么变化,都不会改变isAllowTryAgain在外面的值。后来我又改成
public String function_name(Boolean isAllowTryAgain);
注意这个是大写的Boolean,完了,查了jdk,没有发现什么可以修改Boolean的内部值的method,
怎么办?难道要自己写一个类不成?
public String function_name(boolean isAllowTryAgain);
无论这个函数里面怎么变化,都不会改变isAllowTryAgain在外面的值。后来我又改成
public String function_name(Boolean isAllowTryAgain);
注意这个是大写的Boolean,完了,查了jdk,没有发现什么可以修改Boolean的内部值的method,
怎么办?难道要自己写一个类不成?
String 也是不可变的,难道也没用吗,String是用的最多的
把isAllowTryAgain设为类的一个boolean参数,进入函数时,加this.isAllowTryAgain,就可以改变它的值。
class A{
String s;
boolean b
}
让你的方法返回这个类的一个实例
任何一个函数都无法改变一个基本类型的参数(以对像作为参数则是可以改变的,因为对像的参数的传值方式类似于引用参数传值,传过去的是一个对像的引用)
Boolean作为一种外覆型别可以将其对象置入容器中,基本型别是不行的(JDK1.5以前是不行的)。
private boolean yourbool;
public void function_name()
{
yourString=....
yourbool=....
};
public String getYourString(){
return yourString;
//or
// return this.yourString;
}一般来说,你的参数是对应与某个类的,你要的参数完全可以放到类的变量里面去,如果你不愿意,那你最好把你要的参数放到一个bean中,然后你的函数返回这个bean。
这说白了也就是一个变量作用域的问题,你写在函数接口里的数是不会变化的。