Чи є спосіб автоматично генерувати геттери та сетери в Eclipse?


256

Я працюю над новим Androidпроектом ( Java) і створив Об'єкт з великою кількістю змінних. Оскільки я планую додати геттерів та сеттерів для всіх, мені було цікаво: чи є ярлик Eclipseдля автоматичного генерування геттерів та сеттерів у заданому класі?


1
Мені це здається сталкером ... Я просто використовував усі програми Java без IDE, тому використання Eclipse для мене все ще відносно нове.
— Філ

3
@krio - Весь світ не використовує Eclipse для Java-розробника. Більшу частину своєї роботи я робив в IntelliJ, і коли я почав працювати в Eclipse, я задав собі багато таких питань.
— vcsjones

1
@Phil, vcsjones - дуже правда, вибачте, але перевірте це, - google.com.au/… - я думаю, stackoverflow каже, що дослідження важливе
— TeaCupApp

2
це найшвидший спосіб: ctrl + 3 ggas
— dellasavia

1
@ Константин, який просто говорить, щоб уникнути їх використання в одному класі, тому не дзвоніть this.getCount(), коли можна просто посилатися this.mCount. Хоча це може бути і більш дорогою операцією, це більш чистий підхід забезпечити доступ до змінних інших об'єктів за допомогою геттерів та сетерів.
— Філ

Відповіді:


357

Виберіть контекстне меню (тобто клацніть правою кнопкою миші) у вікні вихідного коду потрібного класу. Потім виберіть Sourceпідменю; з цього меню Generate Getters and Setters...викличе вікно майстра.

Source -> Generate Getters and Setters...

Виберіть змінні, для яких потрібно створити геттери та сетери, і натисніть OK.


Є лише "Згенерувати коментар до елемента", немає "Гетерів" та "Сетер" Я використовую Eclipse 4.4.0, встановлений плагін PDT. Тим часом це можна використовувати - mikeangstadt.name/projects/getter-setter-gen .
— Xdg

Відмінно працює на Eclipse Mars.2 Release (4.5.2). Дякую.
— this.user3272243

Дякую, що врятували мені близько мільйона років тидію!
— Джей Едвардс

11
Ви також можете отримати доступ до цього підменю за допомогою комбінації клавіш SHIFT+ ALT+ S, а потім відкрити параметри "Генерувати отримувачі та налаштування" натисканням кнопки R.
— Роза

Смішно, як моя відповідь тут стала такою популярною, але в ці дні я просто використовую Ломбок , як зазначають інші нижче.
— Хагай Цибульський

70

У програмі Eclipse Juno за замовчуванням ALT + SHIFT + S, R відкривається діалогове вікно getter / setter. Зверніть увагу, що ви повинні натиснути всі 4 клавіші.


5
Ви можете залишити SHIFT частину, а також виконати ALT + S, R.
— Джейсон Уілер

2
Ви не можете залишитись SHIFTу Eclipse Kepler
— yellavon

Ви можете залишити позаду SHIFTв Eclipse Oxygen.
— Джейк Рис

Ви не можете залишити SHIFTв Eclipse 2018-12.
— Неф


41

Всі інші відповіді - це лише фокус на рівні IDE, це не найефективніший та елегантний спосіб генерування гетерів та сеттерів. Якщо у вас є десятки атрибутів, відповідні способи отримання та налаштування зроблять код вашого класу дуже багатослівним.

Найкращий спосіб, який я коли-небудь використовував для автоматичного генерування геттерів та сетерів, - це використання анотацій проекту lombok у вашому проекті Java , lombok.jar буде генерувати метод getter та setter при складанні коду Java.

Ви просто зосередитесь на атрибутах класу / змінних, іменуванні та визначенні, lombok зробить все інше. Це легко підтримувати свій код.

Наприклад, якщо ви хочете додати метод getter та setter для ageзмінної, просто додайте два анотації lombok:

@Getter @Setter 
public int age = 10;

Це дорівнює такому коду:

private int age = 10;
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}

Ви можете знайти більш детальну інформацію про ломбок тут: Project Lombok


1
Це воно! Велике спасибі! Насправді, ваша відповідь повинна бути зверху, оскільки lombok - єдине вірне рішення, щоб уникнути побачення всіх кодових кодів Java коду, який потрібно було б створити або записати. Дякую!
— Стефан Ендруліс

2
Проект Lombok (або, принаймні, ідея) повинен бути частиною Java 11. Я використовую Kotlin для класів Pojo лише для того, щоб уникнути покоління геттера: /
— Wolf359

31

Способи створення геттерів та сеттерів -

1) Натисніть Alt+ Shift+ S, потімR
2) Клацніть правою кнопкою миші -> Джерело -> Генеруйте Getters & Setters
3) Перейдіть до меню Source -> Generate Getters & Setters
4) Перейдіть до меню Windows -> Preferences -> General -> Keyys (Write Generate Getters & Setters у текстовому полі)
5) Клацніть на полюшці поля помилок -> створіть геттери та сеттери ...
6) Натисніть Ctrl+3 і запишіть геттери та сеттери в текстовому полі, а потім виберіть опцію "Генерувати геттери та налаштування".

якщо Mac OS натисніть Alt + cmd + S, виберіть Getters & Setters


2
Я думаю, що 1 трохи легше таким чином: 1) Натисніть Alt + Shift + S, потім R
— Paco Abato

1
Натиснувши Ctrl-3 і відразу після цього набрати "getter" відсутнє у списку. Набагато простіше запам'ятати, ніж конкретні ярлики, оскільки це працює для кожної команди, перегляду тощо.
— Bananeweizen

@ Bananeweizen - Спасибі
— Діпак Гупта

11

Клацніть правою кнопкою миші -> генеруйте геттери та сетери добре, але якщо ви хочете створити ярлик клавіатури у затемненні у Windows, ви можете виконати наступні дії:

  1. Перейдіть у вікно> Налаштування
  2. Перейдіть до розділу Загальні> Ключі
  3. Список "Швидка допомога - Створення геттера / сетера для поля"
  4. У текстовому полі "Прив'язка" нижче тримайте потрібні клавіші (у моєму випадку я використовую ALT + SHIFT + G)
  5. Натисніть Застосувати та Гаразд
  6. Тепер у вашому редакторі Java виберіть поле, для якого ви бажаєте створити методи getter / setter, і натисніть ярлик, який ви налаштували на кроці 4. Натисніть ОК у цьому вікні, щоб створити методи.

Сподіваюсь, це допомагає!


9

Звичайно.

Для відкриття діалогового вікна використовуйте "Генерувати геттери" та "Налаштування" з меню "Джерело" або контекстного меню у вибраному полі чи типі, або виділення тексту у типі. Діалогове вікно "Генерувати геттери та налаштування" показує геттери та сеттери для всіх полів обраного типу. Методи групуються за полями типу.

Перегляньте довідкову документацію для отримання додаткової інформації.


8

Так. Клацніть правою кнопкою миші на коді, і ви побачите меню, що спливе; там "Джерело", "Генерувати гетерів та сетерів" та поруч із ним можна побачити ярлик, який є Alt + Shift + S і R у моїй системі.

Аналогічно, ви можете перейти до інших підменю в цьому головному меню, ввівши відповідний ярлик, ви перейдете прямо до підменю замість головного контекстного меню, а потім можете вибрати або вибрати меню, або ввести іншу літеру зі списку.



7

Я вважаю за краще спершу створити приватне поле

private String field;

Eclipse автоматично виділить змінну, розташувавши курсор над вашою новою змінною, натисніть Ctrl + 1. Потім вона надасть меню для створення Getter та setter.

Я натискаю Ctrl + 1, тому що це трохи розумніше щодо того, що я думаю, що ви хочете далі.


5

Натисніть Alt + Shift + S + R ..., а потім виберіть лише те, які поля вам потрібно створити Getters або Setters або обидва


5
  • Для всіх змінних ALT + SHIFT + S Потім R і для вибору всіх Натисніть ALT + A

  • Для курсору Одинична змінна точка на змінній натисніть CTRL + 1 та перейдіть до другого варіанту з пропозицій

ScreenShot


Дякую, саме це я шукав.
— Шамс Нахід

4

Доступна баночка з відкритим кодом, відома як Lombok , ви просто додаєте банку, а потім коментуєте ваш POJO за допомогою @Getter & @Setter, він автоматично створюватиме геттери та сетери.

Крім цього, ми можемо використовувати інші функції, такі як @ToString , @EqualsAndHashCode та багато інших цікавих речей, які вилучають ванільний код із вашої програми



3

** In Eclipse Ide

для генерації і сетерів, і геттерів -> alt + shift + s + r, потім Alt A, потім натисніть кнопку ОК;

для генерації лише гетерів -> alt + shift + s + r, потім натисніть кнопку g і натисніть кнопку ОК;

для генерації лише сетерів -> alt + shift + s + r, потім натисніть l, потім натисніть кнопку ОК; **


2

Клацніть правою кнопкою миші на властивості, для якої потрібно генерувати геттер та сетери та виберіть

Source -> Generate Getters and Setters...

2

1) Перейдіть до Windows-> Налаштування-> Загальні-> Клавіші

2) Оберіть command" Генерувати гетерів та сетерів "

3) У Binding, натисніть на ярлик , щоб , як використовувати (як Alt + Shift + G )

4) Клацніть Застосувати, і ви готові йти


1
  1. Відкрийте файл класу в Eclipse
  2. Двічі клацніть на назві класу або виділіть його
  3. Потім перейдіть до Джерело -> Вставити код
  4. Клацніть на Getter і Setter

Це відкриває спливаюче вікно для вибору полів, для яких генеруються / встановлюються методи, які потрібно генерувати. Виберіть поля та натисніть кнопку "Створити". введіть тут опис зображеннявведіть тут опис зображення


1

Використовуйте Project Lombok або краще Kotlin для своїх Pojos.

(Також додати Котліна до вашого резюме;))

Це:

public class BaseVO {
    protected Long id;

    @Override
    public boolean equals(Object obj) {
        if (obj == null || id == null)
            return false;

        if (obj instanceof BaseVO)
            return ((BaseVO) obj).getId().equals(id);

        return false; 
    }

    @Override
    public int hashCode() {
        return id == null ? null : id.hashCode();
    }
    // getter setter here
}

public class Subclass extends BaseVO {
    protected String name;
    protected String category;
    // getter setter here
}

став би таким:

open class BaseVO(var id: Long? = null) {

    override fun hashCode(): Int {
        if (id != null)
            return id.hashCode()

        return super.hashCode()
    }

    override fun equals(other: Any?): Boolean {
        if (id == null || other == null || other !is BaseVO)
            return false

        return id.hashCode() == other.id?.hashCode()
    }
}

@Suppress("unused")
class Subclass(
        var name: String? = null,
        var category: String? = null
) : BaseVO()

Або скористайтеся класами "дані" Котліна. Ви закінчите писати ще менше рядків коду.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.