как сгенерировать конструкторы в eclipse

У меня есть класс A и BM расширяет A. Теперь я хочу создать конструктор B, используя параметр генерации кода eclipse, который принимает параметры и устанавливает значения всех полей B (я имею в виду, что он также должен устанавливать поля, унаследованные от A).

Есть ли какой-либо ярлык для генерации такого кода в eclipse?

11
задан Francseszko 17 April 2013 в 09:56
поделиться

3 ответа

Щелкните правой кнопкой мыши в редакторе и выберите «Источник -> Создать конструктор с использованием полей». Вы можете выбрать суперконструктор для использования, а также выбрать переменные экземпляра для добавления в конструктор.

22
ответ дан 3 December 2019 в 02:51
поделиться

Eclipse (3.5) не имеет встроенной опции для этого конкретного случая, но в любом случае я бы посоветовал вам иметь отдельный конструктор в суперклассе , который подкласс вызывает через super (...) в своем конструкторе.

Это было бы легче поддерживать. Если вы, например, добавляете поле в суперкласс, вам нужно не забыть обновить и подкласс.

class A {
    int i;
    public A(int i) { this.i = i; }
}

class B extends A {
    int j;
    public B(int i, int j) {
        super(i);
        this.j = j;
    }
}
6
ответ дан 3 December 2019 в 02:51
поделиться

Не существует автоматического способа сделать это, и я почти уверен, что команда eclipse сделала это специально, поскольку это привело бы к плохому дизайну.

Создание класса касается только инициализации объектов собственных полей. Если вам нужно установить поля (init) в суперклассе, вызовите конструктор суперклассов, если вам нужно изменить поля суперкласса, вызовите методы получения и установки суперклассов.

Для меня это плохой дизайн - инициализировать поля суперкласса, и этого легко избежать.

2
ответ дан 3 December 2019 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: