如果我在一个类中将值设置为true,例如
static boolean mIsPremium = true;
我有时只得到正确的值,如果我使用双等号(==),我将始终返回真值。
if (firstClass.mIsPremium == true){
do stuff
} else {
do other stuff
}
如果我只使用一个等号(=)它将返回一个真值,当我在第一个类中将mIsPremium设置为false时会发生这种情况。
if (firstClass.mIsPremium = true){
do stuff
} else {
do other stuff
}
我尝试过很多配置,使用两个=符号,使用一个=符号,包括第二个类中的一个新布尔值,它有自己的值取决于第一个布尔值...我做的任何事情似乎都无法正常工作。 / p>
如何从另一个类调用布尔值并在第二个类中正确使用该值。如果它是真的我想在第二个类中它是真的,如果它是假的我想在第二个类中假。
答案 0 :(得分:4)
你对operators感到困惑。
=
指定值
==
检查相等性
if (firstClass.mIsPremium = true){
以上一行将其视为一个陈述,并将值赋值为mIsPremium
并继续进行。
if (firstClass.mIsPremium == true){
检查两个操作数的值是否相等,如果是,则条件变为真。
你做的是
if (firstClass.mIsPremium){
do stuff
} else {
do other stuff
}
答案 1 :(得分:2)
One = sing是一项任务,一项任务总是如此。
(a = b) #-> always true, it doesn't matter if a or b are false or true
两个= sing是一个比较,结果取决于a和b的值是什么。
(a == b) #-> true if and only if a has the same value of b
答案 2 :(得分:2)
布尔值只能有两个值为true / false。不需要使用==或=
只需使用
if (firstClass.mIsPremium) //if mIsPremium is true
{
do stuff
} else {
do other stuff
}
答案 3 :(得分:1)
你不需要使用任何你可以做的标志
if(firstClass.mIsPremium) { } // check for premium
或
if(!firstClass.mIsPremium) { } // check for not premium