if语句问题与mysql getstring

时间:2014-02-24 13:50:10

标签: java android eclipse if-statement

我的Java代码(Android / Eclipse)中的if / else函数存在问题。

当我处于调试模式时,checkGender等于“M”,但直接转到“else”指令并认为'checkGender'不等于“M”。我不明白为什么?有关信息,searcher.getString(“Gender”)从MySQL获取信息。

String checkGender = "";

checkGender = searcher.getString("Gender");

if(checkGender == "M")
{
    bGenderM.setChecked(true);
}
else
{
    bGenderF.setChecked(true);
}

调试信息: checkGender =“M”(id = 8300460 ......) 值[0] = M

如果我替换“searcher.getString(”Gender“);”通过一个简单的“M”,它可以工作。

感谢您的帮助。

汤姆

2 个答案:

答案 0 :(得分:2)

实际上最好是“Yoda-style”

if("M".equals(checkGender)) {
     //code for male
} else {
     //code for female
}

对于NullPointerException

的情况,这样可以避免潜在的checkGender == null

答案 1 :(得分:1)

使用equals()方法代替==进行String比较。

if(checkGender.equals("M")) {

    bGenderM.setChecked(true);

} else {

    bGenderF.setChecked(true);

}

或者,使用equalsIgnoreCase()方法,它更好......

if(checkGender.equalsIgnoreCase("M")) {

    bGenderM.setChecked(true);

} else {

    bGenderF.setChecked(true);

}