Страницы

Поиск по вопросам

вторник, 9 октября 2018 г.

В чём смысл создания массива на 0 элементов

int[] indexOfTask = new int[0];
С какой целью такая возможность поддерживается компилятором?


Ответ

Есть такая замечательная книга "Effective Java" Джошуа Блоха, содержащая обширный список рекомендаций по проектированию и разработке эффективных, надёжных и легкосопровождаемых программ. Одна из рекомендаций звучит как "Возвращайте массивы и коллекции нулевой длины, а не null". Например, в классе java.io.File есть метод listFiles(), который возвращает массив файлов каталога. Представьте, как неудобно было бы, если бы он не смог вернуть массив нулевой длины для пустых каталогов! Пришлось бы вместо лаконичного
for (File file : dir.listFiles()) { ... }
делать
File[] files = dir.listFiles(); if (files != null) { for (File file : files) { ... } }

Комментариев нет:

Отправить комментарий