【发布时间】:2013-02-11 16:47:31
【问题描述】:
我对这段代码有疑问。第 6 行的 if 语句在执行期间被忽略。此时我已经逐步完成了代码,变量 file[position] 的值是“subjects.dat”。但是,它会跳过此步骤并转到相关的 else 语句。任何想法为什么??
dialogButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (markComplete.isChecked()) {
String toDelete;
String[] files = fileList();
if (files[position] == "subjects.dat") { //the error occurs at this line
toDelete = files[position + 1];
boolean deleted = deleteFile(toDelete);
if (deleted) {
dialog.dismiss();
} else {
// Do nothing
}
} else {
toDelete = files[position];
boolean deleted = deleteFile(toDelete);
if (deleted) {
dialog.dismiss();
} else {
//Do nothing
}
}
}
}
谢谢!
【问题讨论】:
-
因为字符串比较不是以这种方式完成的,所以它被评估为 false
-
@RyanThames isEquals()???你的意思是等于()??
-
这可能是最常见的 java 错误之一,还有
if (var = 2);) -
对于对象,不要使用==,而是使用.equals方法
-
@PremGenError 是的,哈哈。哎呀