Предположим, что у меня есть один конструктор, который принимает входные данные, а другой использует значение по умолчанию. Затем оба конструктора продолжают обрабатывать эти данные точно так же. (Пример ниже. )Какие у меня есть варианты, чтобы избежать дублирования кода в этом случае?
(Я прочитал сообщение ] как уменьшить код перегрузки конструктора , где верхний ответ предлагает использовать ключевое слово "это". В моем случае, я думаю, мне нужно было бы использовать "это", чтобы вызвать первый конструктор из второго после ввод был сохранен. Однако это приводит к ошибке компиляции :"вызов этого должен быть первым оператором в конструкторе ".)
Пример кода:
public class A {
public A(String a) {
//process a
}
public A() {
String a = "defaultString";
//process a
}
}
РЕДАКТИРОВАТЬ :Меня сильно возмущает использование диалогового вызова ввода в конструкторе класса (, что, как мне известно, не совсем хорошая практика ). Поэтому я изменил пример кода, чтобы увести обсуждение от этого :).