File.list() vs File.listFiles()
我的问题是:如果这两个函数有什么不同?我的意思是我知道它们返回了不同的东西,但是一个元素中的元素数量是否可能与第二个元素中的元素数量不同。我会尽力解释。我为我的一个类实现了TreeModel,试图基于JTree在PC上的文件上制作漂亮的视图。所以这是它的一部分:
public Object getChild(Object parent, int index) {
File[] children = ((File) parent).listFiles();
if(children == null || index < 0 || index >= children.length) {
return null;
}
File result = new MyFile(children[index]);
return result;
}
public int getChildCount(Object parent) {
//---
//String[] children = ((File)parent).list();
File[] children = ((File)parent).listFiles();
//---
if(children == null) {
return 0;
}
return children.length;
}
我标记了有趣的代码。如果我为这个注释的一行更改了这两行,有时我会在加载树模型后得到:.此未注释不会造成任何麻烦。我检查了文档,它说没有什么不寻常的,包括通过两种方法返回null。这是怎么回事?NullPointerException
jtree.setModel(treeModel);