我一直在为一个项目执行以下操作,但找不到问题所在。我一直在尝试查找我的计算机中可用的所有 mp3 文件,代码工作正常,直到 if 条件 if(extension == "mp3")
在调试时我发现 if
即使条件为true
,条件也不会执行.
public class AudioService {
File[] audioFiles;
File[] roots = File.listRoots();
ArrayList<AudioFile> audios = new ArrayList<AudioFile>();
int idIterator = 0;
public List<AudioFile> getLocalAudioFiles() {
for (int i = 0; i < roots.length; i++) {
searchDir(roots[i]);
}
return audios;
}
public void searchDir(File directory) {
File[] filesList = directory.listFiles();
for (int i = 0; i < filesList.length; i++) {
AudioFile af = new AudioFile();
if (filesList[i].isDirectory()) {
searchDir(filesList[i]);
} else {
int dotLast = filesList[i].getName().lastIndexOf('.');
String extension = filesList[i].getName().substring(dotLast+1);
if(extension == "mp3") {
idIterator++;
af.id = idIterator;
af.name = filesList[i].getName();
af.path = filesList[i].getPath();
af.type = extension;
audios.add(af);
}
}
}
}
public static void main(String args[]) {
List<AudioFile> af;
AudioService as = new AudioService();
af = as.getLocalAudioFiles();
}
}
我不知道我哪里出了问题,需要帮助。提前致谢。
最佳答案
字符串不是原语。您需要对平等进行特殊检查,例如,
if( "mp3".equals(extension)) { }
关于java - 如果即使条件为真,条件也不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48533945/