【发布时间】:2015-02-22 23:22:19
【问题描述】:
我将 2 个布尔对象传递给一个函数。我知道 Java 是按值传递的,但由于我使用对象作为参数,它应该传递这些参数的地址而不是值。但是在函数中更新对象值后,我看不到 main 中的更新值。我在这里错过了什么?
public class Test1 {
public static void main(String[] args){
Boolean b1 = new Boolean(false);
Boolean b2 = new Boolean(false);
System.out.println(b1+" "+b2);
func1(b1, b2);
System.out.println(b1+" "+b2);
}
static void func1(Boolean b1, Boolean b2){
System.out.println(b1+" "+b2);
b1 = !b1;
b2 = !b2;
System.out.println(b1+" "+b2);
}
}
【问题讨论】:
标签: java pass-by-reference pass-by-value