java 布尔值在被调用的方法中未更改
我有一个场景,我想设置一个对象,然后稍后在方法的构造函数中使用它。但是,设置对象的范围是不同的。它是在由首次实例化对象的方法调用的方法中设置的。基于我对Java如何传递基元和对象参数的理解,以及在线阅读几个帖子(例如),当一个对象被传递到一个方法中时,它的属性是通过引用传递的,并且在被调用的方法完成执行后,调用方法中的任何更改都应该反映在调用方法中。但是,我注意到,当调用的方法完成时,其中的任何更改在调用方法中都不会生效。Boolean
booleanValue()
以下是我的方案的快照:
private CustomObject1 callingMethod(){
Boolean b = Boolean.TRUE;
List<CustomObject2> list = this.calledMethod(b);
//Create CustomObject1 with b.booleanValue() as one of the arguments in the constructor
}
private List<CustomObject2> calledMethod(Boolean b){
...
...
if(condition){
b = Boolean.FALSE;
}
...
...
}
当代码到达创建时,即使 if 语句 in 为 true,并且在该方法中将设置为 false,也是如此。CustomObject
b.booleanValue()
callingMethod()
Boolean
我不愿意将调用方法的返回类型更改为,因为它需要更改可能调用此方法的其他代码位。目前,它们只需要签名更改,但返回类型更改需要更多的工作,因为需要维护逻辑(即填充列表,然后对其进行操作)boolean