Java布尔值不会被视为真实

时间:2015-04-21 00:02:00

标签: java boolean

我最近很难尝试使用布尔值。基本上,我不知道为什么这不起作用。

在一个文件中我有这样的东西:

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的事实。

这让我觉得告诉我的第二个文件确实存在问题,希望这是有道理的。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:7)

if(firstclass.newboolean = true)

这不只是比较,而是作业。它使newboolean成立。

你想要

if (firstclass.newboolean)

或者,如果你必须拼出true(气馁)

if (firstclass.newboolean == true)

Java编译器会针对所有其他类型的条件捕获此问题,但遗憾的是不适用于布尔值。因此,最好摆脱键入== true(或== false)部分的习惯。