我的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”,它可以工作。
感谢您的帮助。
汤姆
答案 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);
}