Email or username:

Password:

Forgot your password?
Top-level
nonsense :twittercheck:

@kurator88 так в примере нужно именно в конструкторе проверить. Не, конечно можно написать метод статический и в первой строчке наколхозить чтото типа super(validateValue());

А рядом метод

private static long validateValue() {
if (value < 0) {
throw new IllegalArgumentException();
}
return value;
}

Но это полная фигня и это неудобство будет расти в геометрической прогрессии если у тебя несколько конструкторов и несколько параметров.

4 comments
kurator88

@nonsense ты проверяешь значение внутри конструктора а можно проверять снаружи

if (value < 0 ) {
throw ....
}
new Object(value)
_______
Возможно это не так удобно конечно.
Микрофикс не осуждаю но и не считаю что он всю мою жизнь изменит

nonsense :twittercheck:

@kurator88 да ну ты чё 😄 а как же инкапсуляция?

nonsense :twittercheck:

@kurator88 ну и если проверка более кучерявая и эти объекты ты создаёшь по всему коду в десятках мест, то это будет по ублюдски выглядеть.

kurator88

@nonsense так весь плюс в том что мы выбросили ошибку раньше чем сработал if. По факту просто экономим время на вызове super()

Go Up