如果在执行期间跳过语句

Bra*_*rae 0 java eclipse android

我遇到了这段代码的问题.第6行的if语句在执行期间被忽略.我已经逐步完成了代码,变量文件[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
                        }   
                    }

                }                   
            }
Run Code Online (Sandbox Code Playgroud)

谢谢!

the*_*ner 6

您需要使用.equals()比较两个字符串的实际值 - 否则您将检查它们是否是同一个对象.

if (files[position].equals("subjects.dat")) { 
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

  • 你的意思是`equals()`? (2认同)