Я бы выбрал вариант № 3 - если в качестве аргумента функции передано filename
, поместите в комментарии примечание, что нулевое имя файла не допускается.Затем просто работайте с предположением, что имя файла никогда не равно нулю:
fileChooser.setSelectedFile(new File(filename));
Если какой-то идиот (или вы, <3) проигнорирует ваш комментарий и «действительно» пропустит ноль, он получит исключение NullPointerExceptionи должен решить проблему. </p>
В коде клиента убедитесь, что никакие нули не передаются, всегда инициализируя или устанавливая по умолчанию fileName
в пустую строку.
Я избегал использованияи некоторое время принимаю нули, и теперь мой код стал намного чище, так как в нем больше нет пустых проверок.По-прежнему присутствуют только нулевые проверки, когда я вызываю сторонний код, который может возвращать ноль.
(rant: Конечно, я должен декомпилировать упомянутый сторонний код и определить, что сам, учитывая, что документациялибо отсутствует, либо не принимает к сведению, что возможно возвращает ноль)