Мой вопрос: если эти две функции имеют что-то другое? Я имею в виду, что я знаю, что они возвращают что-то другое, но возможно ли, что количество элементов в одном будет другим, а во втором. Я попытаюсь объяснить. Я реализовал TreeModel для одного из моих классов, пытаясь сделать хороший просмотр файлов на ПК на основе JTree. Итак, вот его часть:
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;
}
Я отметил интересный код. Если я изменил эту две строки для этой прокомментированной, иногда я получаю NullPointerException
после загрузки TreeModel: jtree.setModel(treeModel);
. Это без ранения не вызывает никаких проблем. Я проверил документы и не сказал ничего необычного, включая возврат null этими двумя методами. Что здесь происходит?