我的这段代码有问题。第 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
}
}
}
}
谢谢!
最佳答案
您需要使用 .equals()
来比较两个字符串的实际值 - 否则您将检查它们是否是同一个对象。
if (files[position].equals("subjects.dat")) {
// do stuff
}
关于java - if 语句在执行过程中被跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14816755/