Почитай на вики про паттерн "Null Object".
Используй Files, чтобы в конструкторе класса Solution правильно инициализировать поле fileData объектом ConcreteFileData.
Если возникли какие-то проблемы со чтением файла по пути pathToFile, то инициализируй поле объектом NullFileData.
Null Object Pattern
- 14
Недоступна
Комментарии (84)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Евгений Т.
18 апреля, 04:47
Изначально, не совсем понял условие задачи, но из за собственной невнимательности, спасибо комментариям решил с первого раза.
+1
Максим Дудин
13 декабря 2021, 16:04
раз и квас.... подозрительно...😒
+1
Дмитрий Б.
15 сентября 2021, 08:08
Написал строчку
Path path = Paths.get(pathToFile);
чтобы упростить писанину при инициализации FileData, но нет же, Валя хочет чтоб ты Paths.get(pathToFile) прописал 4 раза.
+1
bprint
22 сентября 2021, 06:00
А у меня прокатила эта строчка. Странно...
+2
Максим Дудин
13 декабря 2021, 16:01
И в готовом решении именно так прописано.. Оччень странно..
+1
LuneFox богатый программист в далёких мечтах Expert
19 декабря 2021, 11:22
Точно так написал и всё прокатило. Возможно, у тебя проблема была в чём-то ещё.
+1
Maks Panteleev Java Developer в Bell Integrator
25 июня 2021, 07:37
Смысл в том, что иногда возвращение null приводит к всем известной ошибке. Чтоб спокойно возвращать ничего и не иметь проблем, используется паттерн "нулевой объект". Это когда мы вместо null возвращаем специально созданный пустой объект. "Болванку" некоторую
+5
Aleksandr Alekseenko Network engineer
14 июня 2021, 00:06
В блоке try использовал одну строчку
fileData = new ConcreteFileData(Files.isHidden(path), Files.isExecutable(path), Files.isDirectory(path), Files.isWritable(path));
А в catch, вроде бы и так понятно, что писать.
+3
Davilalexius
11 апреля 2021, 15:57
Зачем-то проверял в начале на if (Files.isReadable(Path)){тогда всё остальное}. Видимо для экономии процессорного времени, если файла вообще не существует)))) Делайте проверки, только те что в интерфейсе)
+1
Regina Kazan Start-up Founder / AT QA в jivys.com
6 апреля 2021, 16:31
одна из тех задач, которая получилась с первого раза по наитию
![]()

+2
mbesurich Android Developer в Й1
1 марта 2021, 20:13
не понимаю, что не нравится валидатору! подсмотрел правильный ответ и не нашёл принципиальной разницы с моём решением. Подскажите, плиз, кто может, почему у меня ни одно условие не выполнено?
0
Данил
9 июня 2021, 05:02
Нужно использовать Files, а не File. Почему-то старые классы валику не нравятся
0
Aleksandr
18 декабря 2020, 08:47
Совершенно непонятно зачем, для чего, куда, как . но вы пишите , пишите. может что и поймете.
Всё больше и чаще задачи идут делай что-то, может поймешь для чего оно и зачем. А уж как решать проблемы твои, теорию мы тебе конечно же не расскажем.
+12
Maks Panteleev Java Developer в Bell Integrator
25 июня 2021, 07:36
А что тут непонятного то? Нас быстро и легко обучили паттерну нулевой объект.
+1
Hidden #213 Урoвень 13 (Forever&Ever)
26 февраля, 14:06
Это да, всё в принципе было понятно даже ещё не читая про сам паттерн.
Интересно только часто ли буду им пользоваться и буду ли вообще :) Ну да ладно, для общего развития запомню.
P.S. а тут у тебя уже конец Июня... хмм... наверное с Многопоточки вернулся😎
+1
Maks Panteleev Java Developer в Bell Integrator
27 февраля, 10:04
ты учиться будешь или мои темпоральные графики изучения джавы составлять?))
0
Hidden #213 Урoвень 13 (Forever&Ever)
27 февраля, 10:07
😂 Одно другому не мешает. Ахахах
Я думал, что мы плюс\минус одинаково идём, а оказывается я безбожно отстаю😑
0
Maks Panteleev Java Developer в Bell Integrator
27 февраля, 13:00
ага, потому что ты задаешь миллард бессмысленных бесполезных вопросов
+1
Hidden #213 Урoвень 13 (Forever&Ever)
27 февраля, 14:41
Таков путь...
0
Bonus
12 ноября 2020, 15:08
Через условие if (Files.exists) валик не принимает только через try и создание NullObject в catch
+1
Dmitry
16 ноября 2020, 02:07
Да, сначала тоже так подумалось делать. Но все дороги в любом случае ведут в try catch, idea не хочет Files.isHiden(...) проверять без обработки IOException.
+1