Java编译错误 - 没有合适的构造函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java编译错误 - 没有合适的构造函数相关的知识,希望对你有一定的参考价值。
我是Java游戏的新手,我试图让用户选择一个目录,并以递归方式搜索和打印所述目录的内容。
我的代码给了我错误:
找不到合适的文件(文件)构造函数
在这条线上
File[] files = new File(chooser.getSelectedFile()).listFiles();
这里有人会成为一个宝石,并帮助我找到实现我想要的结果的正确语法吗?这是我的完整代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle(choosertitle);
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
// disable the "All files" option.
chooser.setAcceptAllFileFilterUsed(false);
//
if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
File[] files = new File(chooser.getSelectedFile()).listFiles();
} else { System.out.println("No Selection "); }
}
public static void showFiles(File[] files) {
for (File file : files) {
if (file.isDirectory()) {
System.out.println("Directory: " + file.getName());
showFiles(file.listFiles());
} else {
System.out.println("File: " + file.getName());
}
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Find().setVisible(true);
}
});
}
chooser.getSelectedFile()
已经返回File
,所以你可以直接在其返回值上调用listFiles()
:
File[] files = chooser.getSelectedFile().listFiles();
不确定是什么chooser.getSelectedFile()。listFiles()正在返回,但这可能有用
File[] files = chooser.getSelectedFile().listFiles();
chooser.getSelectedFile()
返回一个文件对象(https://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html#getSelectedFile())。您已经获得了一个文件对象。不需要将它作为参数传递给File构造函数(这样的构造函数不存在(https://docs.oracle.com/javase/7/docs/api/java/io/File.html))。
listFiles()
方法列出了目录的所有文件(该目录是您调用该方法的对象)(参见:https://docs.oracle.com/javase/7/docs/api/java/io/File.html#listFiles())
我想你的意思应该是:chooser.getSelectedFile().listFiles()
以上是关于Java编译错误 - 没有合适的构造函数的主要内容,如果未能解决你的问题,请参考以下文章
Room 不能选择一个构造函数,因为多个构造函数是合适的错误