Как избежать дублирования кода в перегруженных конструкторах?

Предположим, что у меня есть один конструктор, который принимает входные данные, а другой использует значение по умолчанию. Затем оба конструктора продолжают обрабатывать эти данные точно так же. (Пример ниже. )Какие у меня есть варианты, чтобы избежать дублирования кода в этом случае?

(Я прочитал сообщение ] как уменьшить код перегрузки конструктора , где верхний ответ предлагает использовать ключевое слово "это". В моем случае, я думаю, мне нужно было бы использовать "это", чтобы вызвать первый конструктор из второго после ввод был сохранен. Однако это приводит к ошибке компиляции :"вызов этого должен быть первым оператором в конструкторе ".)

Пример кода:

public class A {
  public A(String a) {
    //process a
  }
  public A() {
    String a = "defaultString";
    //process a
  }
}

РЕДАКТИРОВАТЬ :Меня сильно возмущает использование диалогового вызова ввода в конструкторе класса (, что, как мне известно, не совсем хорошая практика ). Поэтому я изменил пример кода, чтобы увести обсуждение от этого :).

5
задан Community 23 May 2017 в 12:31
поделиться