Статьи

Создание конструкторов классов в Eclipse на основе полей или конструкторов суперкласса

Вам часто нужно будет добавить конструктор в класс на основе некоторых / всех его полей или даже на основе конструкторов его суперкласса. Возьмите следующий код:

public class Contact {
private String name, surname;
private int age;

public Contact(String name, String surname, int age) {
this.name = name;
this.surname = surname;
this.age = age;
}
}

Это 5 строк кода (строки 5-9) только для того, чтобы иметь конструктор. Вы можете написать их все вручную, но написание конструктора, который принимает и инициализирует каждое поле, занимает много времени и через некоторое время становится раздражающим. А создание конструкторов из суперкласса может занять еще больше времени, поскольку суперкласс может определять несколько конструкторов, которые необходимо переопределить.

Вот почему Eclipse имеет две функции, которые помогут вам мгновенно генерировать эти конструкторы: генерировать конструктор с использованием поля и генерировать конструктор из суперкласса . Обе функции будут генерировать конструктор в считанные секунды, освобождая вас, чтобы добраться до захватывающего кода. Вы также узнаете, как добавить / удалить / изменить порядок аргументов существующего конструктора на основе полей, определенных в классе.

Генерация конструктора из полей

Самый быстрый способ создать конструктор на основе полей — это нажать Alt + Shift + S, O (в качестве альтернативы выберите « Источник»> «Создать конструктор с использованием полей…» в меню приложения). Откроется диалоговое окно, в котором вы можете выбрать поля, которые вы хотите включить в аргументы конструктора. После того, как вы выбрали нужные поля, просто нажмите Ok, и все готово. Кстати, Alt + Shif + S — это ярлык для отображения сокращенного меню «Источник», позволяющего использовать команды редактирования исходного кода Java.

В следующем видео показан пример того, сколько времени эта функция может сэкономить вам. Мы создадим конструктор для класса Message.

Заметки:

  • Кроме того, вы можете вызвать конструктор суперкласса с подмножеством полей, изменив раскрывающийся список Выберите суперпроектор для вызова в верхней части диалогового окна. Это создает супер (…) вызов с соответствующими аргументами и инициализирующим кодом для остальных аргументов в конструкторе вашего подкласса.
  • Если вам не нужен JavaDoc для конструктора, снимите флажок « Генерировать комментарии конструктора» в диалоговом окне.
  • Вы можете включить / исключить вызовы super () с помощью флажка Пропустить вызов конструктора по умолчанию super () в диалоговом окне.
  • Вы должны быть позиционированы в классе, чтобы вызвать эту команду.

Если вы часто используете эту команду, вы можете переназначить ее сочетание клавиш, изменив привязку клавиш для команды « Создать геттеры и сеттеры».

Генерация конструктора (ов) из суперкласса

Иногда вы захотите переопределить некоторые / все конструкторы суперкласса, особенно в рамках контракта.

Чтобы сгенерировать конструктор (ы) из суперкласса, просто нажмите Alt + Shift + S, C (или выберите « Источник»> «Создать конструктор из суперкласса…» в меню приложения). Появится диалоговое окно, позволяющее выбрать конструктор (ы), который вы хотите создать. Когда вы нажимаете Ok, Eclipse генерирует конструктор вместе с вызовом super ().

Вот пример того, как создать конструктор в SecretMessage, который наследуется от класса Message . Сообщение имеет три конструктора: один по умолчанию, один, который принимает одну строку ( контент ), и другой, который принимает три строки ( контент , fromAddress и toAddress ). SecretMessage должен предоставлять только последние два конструктора.

Примечание: вы должны быть расположены в классе, чтобы вызвать эту команду.

Если вы часто используете эту команду, вы можете переназначить ее сочетание клавиш, изменив привязку клавиш для команды « Создать конструкторы из суперкласса» .

Добавить, изменить порядок и удалить поля в существующих конструкторах

Если у вас есть существующий конструктор и вы хотите изменить его аргументы или удалить некоторые из них, взгляните на рефакторинг сигнатуры метода изменения, который делает это в один миг.

Если вы хотите добавить отдельное поле к существующему конструктору, посмотрите следующее видео, в котором используется быстрое исправление Eclipse (Ctrl + 1), чтобы сделать это легко. Я добавлю поле selectedDate к существующему конструктору в сообщении, выбрав параметр «Назначить параметр для поля» в меню «Быстрое исправление», когда он расположен на поле.

С http://eclipseone.wordpress.com