Какова наилучшая практика при адаптации функций C-стиля, которые возвращают true/false на Java?Методы адаптации, возвращающие true/false
Вот простой способ проиллюстрировать, где проблема.
public static boolean fileNameEndsWithExtension(String filename, String fileExtension) {
return filename.endsWith(fileExtension);
}
Обратите внимание, что есть, вероятно, более элегантный способ фильтрации файлов (не стесняйтесь прокомментировать это). Во всяком случае, если имя файла является значением null
, делает один:
- Вернуть ложь, если имя файла является недействительным? Если да, то как можно различать случай, когда имя файла
null
и случай, когдаString
или имя файла не заканчивается данным расширением? - Измените тип возврата на класс оболочки Boolean, который допускает значение
null
. - Бросить
Exception
и заставить программиста убедиться, что значениеnull
никогда не передается методу? - Использовать другое решение?
См http://stackoverflow.com/questions/135845/are-booleans-as-method-arguments-unacceptable/135871#135871 для возможного варианта (4) – skaffman
Спасибо skaffman. –