Як автоматично генерувати геттери та сетери в Android Studio


294

Чи є ярлик в Android Studio для автоматичного генерування геттерів та сетерів у даному класі?

Відповіді:


522

Використовуючи Alt+ Insertдля Windows або Command+ Nдля Mac у редакторі, ви можете легко генерувати методи отримання та налаштування для будь-яких полів вашого класу. Це має такий же ефект, як і за допомогою меню Меню -> Code->Generate...

введіть тут опис зображення

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


77
Для тих, хто на Mac, це управління + введення.
аніта

Будь-яка можливість створити геттер та сеттер, такі як ivar _username та getter та setter - це getUsername та setUsername?
Ніколя Манзіні

На Mac Control + n
Алон Коган

2
Для Java його добре працює. Але я використовую kotlin в андроїд-студії для розробки додатків. Тоді як генерувати геттер / сеттер, як Java?
SIVAKUMAR.J

2
як генерувати геттери та сетери для класу Котлін
Ашик

82

У OSX + Nза замовчуванням + .

Клацніть правою кнопкою миші та виберіть "Генерувати ...", щоб побачити поточне відображення. Ви можете вибрати кілька полів, для яких можна генерувати геттери / сетери одним кроком.

Див. Http://www.jetbrains.com/idea/webhelp/generating-getters-and-setters.html


29

Android Studio & OSx :

Натисніть cmd+ n> Generate>Getter and Setter

Android Studio & Windows :

Натисніть Alt+ Insert> Generate>Getter and Setter


Щойно тестований на Windows Alt + Shift + S + R не працює, а клацання правою кнопкою миші не містить джерела. Це може бути налаштування на замовлення?
Anthea

Я виправив розділ Win! :)
Jorgesys

8

Ви можете генерувати геттер і сетер, виконавши наступні кроки:

  • Спершу оголосити змінні.
  • натисніть клавішу ALT+ Insertна клавіатурі, розміщуючи курсор вниз до змінної частини декларації
  • тепер виберіть конструктор і натисніть Ctrl+ Aна клавіатурі та натисніть, Enterщоб створити конструктор.
  • Тепер знову розміщуючи курсор у наступному рядку дужки закриття конструктора, клацніть ALT+ INSERTта виберіть getter та setter і знову натисніть CTRL+, Aщоб вибрати всі змінні та натисніть Enter.

Це воно. Щасливе кодування !!


8
  • створити змінну
  • клацніть правою кнопкою миші
  • виберіть "Генерувати", а потім виберіть опцію "Геттер і налаштування"

Клацніть правою кнопкою миші меню


Будь-який ярлик для kotlin Constructors ? Alt + Ins не показує, що я генерую параметр Constructors.
Arbaz.in

Ви пробували Alt + Enter?
Веньло Полотто

для цього випадку я не знаю, що відбувається. Ви розміщували свою проблему на форумі Intellij?
Веньло Полотто

Коли ви знайдете рішення, будь ласка, поділіться ним тут.
Веньло Полотто

8

Android Studio & Windows:

fn+ alt+insert

Зображення меню


1
Ваше зображення не з’явилося в публікації неправильно, і ви не заповнили опис зображення - там написано "Введіть опис зображення тут".
LordWilmore

6

Розташуйте курсор під змінними -> клацніть правою клавішею миші -> Створити -> Геттер і Установник -> Виберіть змінні для отримання та встановлення

або

Alt + Insert -> Getter and Setter -> Виберіть змінні


Питання полягало в тому, чи можна генерувати геттери та сетери за допомогою одного ярлика, тож не там, де ви можете знайти цю опцію в меню.
R Pelzer

Я не зрозумів. Alt + Insert -> Getter and Setter -> Виберіть змінні
Baby

5

Як зазначалося тут , ви також можете налаштувати генерацію геттера / сеттера для врахування префіксів і суфіксів (наприклад, m для змінних, наприклад). Перейдіть File->Settingsі розгорніть Code Style, виберіть Javaі додайте свої префікси / суфікси під Code Generationвкладку.


4

Ви можете використовувати AndroidAccessorsПлагін Android Studioдля генерації геттера і сеттера без m як префікса до методів

Наприклад: mId; Буде генеруватися getId()і setId()замість getmId()іsetmId()

Скріншот плагіна


4

Ця відповідь стосується вашого запитання, але не є точно відповіддю на нього. =) Це цікава бібліотека, яку я дізнався нещодавно і хочу поділитися з вами.


Проект Ломбкі можуть генерувати загальні методи, такі як добувачі, сетера, equals()і hashCode(), toString()для ваших класів автоматично. Він замінює їх примітками, що зменшують код котла. Щоб побачити хороший приклад коду, написаного за допомогою Lombok, подивіться відео на головній сторінці або прочитайте цю статтю .

Розвиток Android за допомогою Lombok простий і не зробить ваші програми для Android «важчими», тому що Lombok - це лише бібліотека, що займається компіляцією. Важливо правильно налаштувати проект Android.

Ще один приклад:

import lombok.Getter;
import lombok.Setter;

public class Profile {

  @Getter @Setter
  private String username;

  @Getter @Setter
  private String password;

}

Можлива розробка Android з Lombok. Lombok має бути залежною лише від компіляції, оскільки в іншому випадку вся Lombok виявиться у ваших файлах DEX, витрачаючи дорогоцінний простір. Фрагмент Gradle:

dependencies {
    compileOnly "org.projectlombok:lombok:1.16.18"
}

Крім того, ви можете додати плагін Lombok IntelliJ для підтримки функцій Lombok у вашому IDE під час розробки. Також є бібліотека Хріссі, яка базується на Ломбоку . Простіше кажучи, це підтримка Lombok + Parcellable.


1
На жаль, Project Lombok пробивається в бібліотечні проекти Android. Зараз це ненадійно.
ІгорГанапольський

1
@IgorGanapolsky якийсь доказ?
Артем Новіков

1
@IgorGanapolsky Project Lombok чудово працює з Android. Див. Посібник із налаштування .
naXa


2

використовуйте код => create => getter () та діалог setter (), виберіть усі змінні, генеруйте всі методи getter (), setter () одночасно.


1

Ще один кумедний спосіб

Введіть ім'я параметра в будь-якому місці об'єкта після визначення, ви побачите сеттер і геттер, просто виберіть і натисніть Enter :)

Я спробував з Android Studio 2.3


-1

Клацніть правою кнопкою миші Editorта виберіть Source -> Generate Getters and Settersабо натисніть Alt+ Shift+S введіть тут опис зображення


2
Це Затемнення. Він попросив Android Studio.
WannaGetHigh

-2

Про всяк випадок, якщо хтось працює з Eclipse

ОС Windows 8.1 | Затьмарення Холодна Луна

Оголосіть змінну верхнього рівня private String usernameEclipse, будь ласка, генеруйте попередження ліворуч на екрані, натисніть це попередження та кілька пропозицій, а потім виберіть "Створити"введіть тут опис зображення


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