задачу решил. потом заглянул в правильное решение и в комментарии. все говорят добавлять проверку на null. но у меня валидатор засчитал решение и так. мое решение почти один в один как в правильном решении, которое закомментированное, с единственным отличием. я проводил сравнение не через == а через equals. подскажите, правильно ли так , или в данном лучше сравнивать ссылки? и обязательна ли проверка на null, если в конце есть общий else для любого неподходящего аргумента, в том числе и null?
Eugene Volkov
35 уровень
чтобы не выкладывать правильное решение, прошу помощи у тех, кто может смотреть условие и правильное решение задачи.
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
wersiv
4 ноября 2025, 07:17полезный
Немножко не в тему, но поясню за null
Красава тут душнилы сидят не обращай внимания(судьба каждого начинающего разраба стать таким в будущем, хотя я максимально этого избегаю) короче вкратце обрисую про налл(null). Эта штука означает ничего, вообще ничего, и даже не пустая строка(""), вот и переводится как "пустота". По умолчанию это значение присваивается ко всем объектам в жабе, которые ты не проинициализировал(не приравнял ничего толкового). А НПЕ (налл поинтер экзепшен) вылетает когда ты вдруг обращаешься к этому пустому обьекту с null и пытаешься что то с ним сделать, использовать на нем какой то метод и так далее. Для защиты от null есть такая вещь как Optional, которая либо дает значение, либо дает какой то экзепшен, говоря что тут пусто ну и тд. Ну вот, как то так, надеюсь не перегрел
-1
Eugene Volkov
25 октября 2025, 08:24
все, разобрался почнму NPE нет. почитал, погуглил
0
Eugene Volkov
25 октября 2025, 08:19
package com.javarush.task.task16.task1631;
import java.lang.*;
import com.javarush.task.task16.task1631.common.* ;
public class ImageReaderFactory {
public static ImageReader getImageReader(ImageTypes type){
if(ImageTypes.JPG.equals(type)){
return new JpgReader();
} else if(ImageTypes.PNG.equals(type)) {
return new PngReader();
} else if (ImageTypes.BMP.equals(type)){
return new BmpReader();
} else throw new IllegalArgumentException("Неизвестный тип картинки");
}
}
вот текст
0
Денис Enterprise Java Developer
24 октября 2025, 21:12
В программировании нет "правильного" решения. Есть код который выполняет нужную задачу и код который этого не делает. Любую задачу можно решить множеством способов.
Тебе очевидно нужно разобраться чем отличается сравнение по ссылке и по значению. И почему
null.equals(something) бросит NPE, а null == something нет.
Но без фактического кода это всё просто переливание из пустого в порожнее, программирование это инженерия, она не терпит ху*во заданных вопросов.
0
ГоффMaster
25 октября 2025, 22:30
:-)
Всегда существуют 64 разных способа добиться нужного результата. И они все описаны в Камасутре.
+2