我最近很难尝试使用布尔值。基本上,我不知道为什么这不起作用。
在一个文件中我有这样的东西:
public static boolean newboolean;
if (something) {
newboolean = true;
}
else {
newboolean = false;
}
在另一个文件中我有:
if(firstclass.newboolean = true) {
doSomething()
}
else {
doSomethingDifferent()
}
基本上,如果第一个if (something)
中的内容为真,则newboolean
应设置为true。
但是,doSomething()
不是doSomethingDifferent()
,而是{{1}}。但是,我知道布尔值设置为true的事实。
这让我觉得告诉我的第二个文件确实存在问题,希望这是有道理的。有人可以帮忙吗?
答案 0 :(得分:7)
if(firstclass.newboolean = true)
这不只是比较,而是作业。它使newboolean
成立。
你想要
if (firstclass.newboolean)
或者,如果你必须拼出true
(气馁)
if (firstclass.newboolean == true)
Java编译器会针对所有其他类型的条件捕获此问题,但遗憾的是不适用于布尔值。因此,最好摆脱键入== true
(或== false
)部分的习惯。