Код: Выделить всё
abstract class MySuperClass {
private final Object mySuperField;
MySuperClass(Object myField) {
this.mySuperField = myField;
}
public Object getMySuperField() {
return mySuperField;
}
}
Код: Выделить всё
public class MySubClass extends MySuperClass {
private final Object mySubField;
public MySubClass(MySubClass toCopy) {
super(toCopy.getMySuperField());
this.mySubField = toCopy.mySubField;
}
}
Я хочу избежать создания исключения NullPointerException в конструктор MySubClass, если аргумент toCopy имеет значение null, или, по крайней мере, выдать собственное исключение, но, конечно, вызов super(...) должен быть первая строка в конструкторе.
Есть ли какой-нибудь шаблон Java, который я могу использовать для собственной проверки аргументов перед вызовом super(...)?Я пробовал несколько разных вещей, но все они кажутся уродливыми/хакерскими, например, передача нулей в конструктор суперкласса и отсутствие проверки в суперклассе, а затем выполнение проверки аргументов после вызова суперкласса. (...) в подклассе или сделать mySuperField в MySuperClass не окончательным и предоставить установщик в суперклассе. Должно быть что-то лучше.
Подробнее здесь: https://stackoverflow.com/questions/791 ... onstructor
Мобильная версия