我们可以在java中修改类函数中的布尔值,这样的东西不会起作用,因为更改是函数的局部变量。我们怎样才能使以下变量传递变量反映在方法调用之外?
public void changeboolean(Boolean b)
{
if( somecondition )
{
b=true;
}
else
{
b=false;
}
}
EDIT 代码可能是这样的:
public String changeboolean(Boolean b,int show)
{
if( somecondition )
{
b=true;
show=1;
return "verify again";
}
else
{
b=false;
show=2;
return "Logout";
}
show=3;
return verifed;
}
我正在寻找类似的东西
b.setvalue(true);
有可能吗?
答案 0 :(得分:23)
我们可以在java
中修改类函数中的布尔值吗?
不,Boolean
是不可变的,就像原始类型的所有包装一样。
选项:
boolean
(最佳选择)Boolean
,允许您设置嵌入值。然后,您需要修改参数引用的实例中的值 - 更改参数的值以引用不同的实例将无法帮助您,因为参数始终通过Java中的价值。该值可以是原始值,也可以是引用,但它仍然通过值传递。更改参数的值永远不会更改调用者的变量。boolean[]
与单个元素一起用作包装类型AtomicBoolean
作为包装类型答案 1 :(得分:1)
布尔值是不可变的,就像基本类型的所有包装器一样。 溶液: 尝试使用apacheCommon的MutableBoolean http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/mutable/MutableBoolean.html