我想知道我们如何更好地使用 else-if 运算符来重构这部分代码。什么时候用不同的扩展进行 eguals 检查?
代码:
private void findFiles(String path) {
try {
File root = new File(path);
File[] list = root.listFiles();
for (File currentFile : list) {
if (currentFile.isDirectory()) {
findFiles(currentFile.getAbsolutePath());
} else {
if (currentFile.getName().toLowerCase().endsWith((".txt"))) {
queue.put(currentFile);
} else if (currentFile.getName().toLowerCase()
.endsWith((".pdf"))) {
queue.put(currentFile);
} else if (currentFile.getName().toLowerCase()
.endsWith((".doc"))) {
queue.put(currentFile);
} else if (currentFile.getName().toLowerCase()
.endsWith((".docx"))) {
queue.put(currentFile);
} else if (currentFile.getName().toLowerCase()
.endsWith((".html"))) {
queue.put(currentFile);
} else if (currentFile.getName().toLowerCase()
.endsWith((".htm"))) {
queue.put(currentFile);
} else if (currentFile.getName().toLowerCase()
.endsWith((".xml"))) {
queue.put(currentFile);
} else if (currentFile.getName().toLowerCase()
.endsWith((".djvu"))) {
queue.put(currentFile);
} else if (currentFile.getName().toLowerCase()
.endsWith((".djv"))) {
queue.put(currentFile);
} else if (currentFile.getName().toLowerCase()
.endsWith((".rar"))) {
queue.put(currentFile);
} else if (currentFile.getName().toLowerCase()
.endsWith((".rtf"))) {
queue.put(currentFile);
}
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
问题:
- 如何更好地重构代码?让
理解更简单。 - 我们可以使用其他方法来检查
extentions
变体吗?
谢谢,
纳扎尔。