Итак, я создаю тестовую библиотеку, которую я буду использовать в основном для личного использования, однако у меня есть вопрос.Throw Exception, а затем Call Constructor?
С Java, если у вас есть 2 или более конструктора в вашем классе, если вы хотите позвонить друг другу, это должно быть первое, что вы делаете. Это проблематично для меня, поскольку у меня есть следующая настройка.
public Constructor(TypeA a, TypeB b, TypeC c) {
if (c.getData() == null) throw new IllegalArgumentException("");
this(a, b, c.getOtherData());
}
public Constructor(TypeA a, TypeB b, TypeD d) {
// stuff happens
}
Как я могу это сделать, избегая, «Конструктор вызов должен быть первым оператором в конструкторе» ошибка?
Вы не можете делать то, что хотите. – bhspencer
Вместо конструктора рассмотрим статический заводский метод. – bhspencer
Я считаю, что это не очень хороший дизайн. IllegalArgumentException выбрано для указания, что конструктор использовался неправильно, это нормально. Однако сам конструктор не должен обрабатывать свое собственное исключение. Вместо этого код, называемый этой конструкцией, должен обработать его и вызвать другой конструктор. – Sekkuar