Может ли метод вернуть файл? - PullRequest
1 голос
/ 23 января 2012

У меня проблема с моим кодом Java. Я хочу передать файл (XML-файл для точности) в качестве аргумента ввода в метод. Я вставляю свой код:

public File searchPlaces(){

     URL url = getClass().getResource("arml.xml");
     File file = new File(url.getPath());

     return file;
}

У меня возникает исключение NullPointerException при попытке вызвать этот метод.

Кто-нибудь может мне помочь?

Ответы [ 3 ]

2 голосов
/ 23 января 2012

Вы не можете проверить, что "url" инициализирован ненулевым значением.

Если у вас есть действительный ненулевой URL, вы можете попытаться создать из него объект File.Возможно, вам придется проверить, что файл также не является нулевым (или, возможно, этому методу разрешено возвращать нулевые элементы).В любом случае, возвращение нулевого элемента (файла или иного) вполне приемлемо в Java.

Отмена ссылки на нулевое значение (вызов метода для ссылки на объект, который ни на что не ссылается) - нет.Вот почему вы получаете сообщение об ошибке:

url.getPath()

. Вы просто ошибочно определяете, где это происходит.

1 голос
/ 23 января 2012

То, что вы, вероятно, хотите здесь сделать, - это не вернуть объект File, а BufferedReader или FileReader или, возможно, FileInputStream. Затем инкапсулируйте всю вашу обработку ошибок в методе, используя try / catch или разметьте ошибки с помощью объявления throws.

1 голос
/ 23 января 2012

Да, вы можете.Вы можете получить нулевой указатель, если новый вызов File () генерирует исключение.

Отладка и посмотрите, не является ли ваш URL-адрес ненулевым.

...