【发布时间】:2014-01-06 00:44:10
【问题描述】:
我对 Java 中的布尔值有疑问。假设我有一个这样的程序:
boolean test = false;
...
foo(test)
foo2(test)
foo(Boolean test){
test = true;
}
foo2(Boolean test){
if(test)
//Doesn't go in here
}
我注意到在 foo2 中,布尔测试没有改变,因此不会进入 if 语句。那我怎么改呢?我查看了布尔值,但找不到将测试从真“设置”为假的函数。如果有人可以帮助我,那就太好了。
【问题讨论】:
-
Java 是按值传递的。使变量成为实例变量并修改并检查它。
-
@SotiriosDelimanolis 是的。但是 java.lang.Object(和子类型,即任何非原始类型)的值是引用地址。
-
@ElliottFrisch 我看不到 but 的来源。
-
@SotiriosDelimanolis 对不起。 并且 java.lang.Object(和子类型,即任何非原始类型)的值是引用地址。
标签: java boolean primitive-types