Машину на СТО не повезем!

  • 14
  • Недоступна
Инициализируй поле wheels используя данные из loadWheelNamesFromDB. Выкинь исключение в случае некорректных данных. Подсказка: если что-то не то с колесами, то это не машина! Сигнатуры не менять.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (96)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сэм Фишер
Уровень 27, Кишинев, Молдова
9 августа, 16:11
"если что-то не то с колесами, то это не машина!" - обратите на эту строку внимание и проверьте количество колес в списке если оно равно 4, иначе валидатор ответит вам, что вам "надо проиницилизаровать" список с колесами, что может запутать
LuneFox богатый программист в далёких мечтах Expert
17 августа, 13:35
Именно на этом и запнулся. "Ну вот же, ну проинициализировал же!". А оказывается, проверка нужна была на количетсво. Попробуй угадай, что Валя хочет.
Максим Дудин
Уровень 30, Калининград
1 июля, 15:53
колёс должно быть 4 ( проверочное условие) и это верно потому что for(String w:loadWheelNamesFromDB()) { wheels.add(Wheel.valueOf(w)); } при таком раскладе если значение из массива не соответствует значению из списка, то оно не запишется и так, но если к примеру в массиве который получается на выходе :loadWheelNamesFromDB() больше четырех элементов, например (return new String[]{"FRONT_LEFT", "FRONT_RIGHT", "BACK_LEFT", "BACK_RIGHT","FRONT_LEFT"};) то создании объекта Car в лист запишутся все 5, а колёс должно быть 4.. P.S. может это запаска? =)
Камиль
Уровень 41, Нововоронеж, Россия
29 июня, 01:48
В блок try{}catch{} обернул, только из-за этого не проходило валидацию...
Flexo Bending Unit #3370318
26 мая, 14:55
Устали учиться на программиста? Побудьте в шкуре механика Познайте дзен вот этого вот условия
если что-то не то с колесами, то это не машина!
Andrii
Уровень 26
19 апреля, 12:03
А мне задачка понравилась, такая ненапряжная после MVC.
Даниил Александрович
Уровень 35, Тамбов , Россия
10 марта, 15:53
в чем был мой косяк мало того что колес должно быть 4. еще важно иницилизировать саму переменную ибо закидывая в null add не будет работать.
wheels  = new ArrayList<>();
проверка на уникальность или наличие в списке, нет необходимости, главное количество.
Vladyslav Pelykh
Уровень 36, Днепр, Украина
29 августа, 08:50
Спасибо, а то я не мог понять что не так) такая глупая ошибка...
mishok Support
1 марта, 12:41
Выкинь исключение в случае некорректных данных.
Очередная недосказанность, познающаяся методом тыка. Первым делом начинаешь думать в сторону неправильных имён этих колёс, а не их количества.
Herr Ives
Уровень 30
2 марта, 21:46
ого. действительно фигня, спасибо
jimaltair
Уровень 41, Калининград, Россия
13 февраля, 14:01
Я редко жалуюсь, но валидация по последнему пункту здесь реально идиотская! Согласно Вали вот такой вариант инициализации не подходит:
wheels.add(...);
Нужно обязательно так:
List<Wheel> newWheels = new ArrayList<>();
...
wheels = new ArrayList<>(newWheels);
Может я ошибаюсь в силу своих ограниченных знаний и инициализация List согласно валидатору имеет какое-то сакрально значение? Тогда буду благодарен за конструктивные комментарии от более знающих людей
Даниил Александрович
Уровень 35, Тамбов , Россия
10 марта, 15:49
не обязательно. можно и так и это скорее правильно:
wheels  = new ArrayList<>();
Алексей
Уровень 29, Зима, Россия
11 апреля, 06:39
Если так: "wheels = new ArrayList<>();" не сделать, то в строке: "wheels.add(...);" выскакивает исключение: "NullPointerException"! Можешь сам проверить: "System.out.println(new Car().wheels);"
Anonymous #1402188
Уровень 38
9 мая, 04:47
jimaltair А ты перед валидацией реально смотришь, как программа работает?
jimaltair
Уровень 41, Калининград, Россия
10 мая, 19:35
конечно, стараюсь по мере возможности протестировать самому перед отправкой на проверку
Vitalachka
Уровень 35, Лондон, Великобритания
8 февраля, 18:28
бесячие задание из цикла угадай-ка. проверка сводится к тому есть 4 элемента во входящем и готовом массиве. в общем игралась я игралась и залезла в подсказку. вот к чему в итоге пришла: * создать вспомогательный массив - лист / сет * проверяем приходящий массив на длину * заполняем вспомогательный массив * проверяем вспомогательный массив на размер * инициализируем колёса вспомогательным массивом всем удачи задаче -
Роман Юрьевич Специалист СЦ в DNS
7 марта, 22:40
Обошелся без вспомогательного массива. Просто сделал проверку
if (loadWheelNamesFromDB().length == 4){ /*заполняем массив данными*/ }
else throw new Exception();
Алексей
Уровень 29, Зима, Россия
11 апреля, 06:40
А мне валя, сразу подсказал, что нужно кинуть исключение, если колес больше или меньше 4.
Евгений
Уровень 35, Иваново, Россия
31 декабря 2020, 15:45
Я не сразу понял, что все проверки и заполнение списка List<Wheel> wheels нужно делать в конструкторе. Делал в main, но валик не принимал. Также не мог понять, почему колеса не добавляются в список, хотя все правильно. Оказалось, что я забыл инициализировать список wheels = new ArrayList<>();.