Чи є спосіб автоматично генерувати геттери та сетери в 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.