java - if 语句在执行过程中被跳过

标签 java android eclipse

我的这段代码有问题。第 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/

相关文章:

java - JOptionPane 输入对话框和按钮

java - 所有者删除时违反参照完整性约束(OneToMany 单向)

c# - C++/Java/C#图像处理库

php - 使用 JSON 和 PHP 从 Mysql DB 获取数据到 listView

Java Eclipse @Override 错误

java - JFrame 不添加来自单独类的图形

android - 命令 APP_CMD_SAVE_STATE 的目的是什么?

android - 发长短信收错

java - Lombok 不生成 getters/setters(使用 Luna 或命令行编译)

eclipse - 无效 channel 117 - Eclipse/EGit