Android - 从另一个类调用布尔值

时间:2013-09-07 10:44:08

标签: java android boolean return-value

如果我在一个类中将值设置为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>

如何从另一个类调用布尔值并在第二个类中正确使用该值。如果它是真的我想在第二个类中它是真的,如果它是假的我想在第二个类中假。

4 个答案:

答案 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