Как автоматически генерировать геттеры и сеттеры в Android Studio


294

Есть ли в Android Studio ярлык для автоматической генерации методов получения и установки в заданном классе?

Ответы:


522

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

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

а затем с помощью клавиши Shift или Control выберите все переменные, которые вам нужны, чтобы добавить геттеры и сеттеры


77
Для тех, кто на Mac, это control + enter.
Анита

Любая возможность создать getter и setter, такие как ivar _username и getter и setter, являются getUsername и setUsername?
Николас Манзини

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

2
Для Java это работает хорошо. Но я использую kotlin в Android Studio для разработки приложений. Затем, как создать геттер / сеттер, как Java?
SIVAKUMAR.J

2
как генерировать геттеры и сеттеры для класса Kotlin
Ашик Азиз


29

Android Studio и OSx :

Нажмите cmd+ n> Generate>Getter and Setter

Студия Android и Windows :

Нажмите Alt+ Insert> Generate>Getter and Setter


Только что протестированный на Windows Alt + Shift + S + R не работает и правый клик не содержит Source. Это может быть пользовательская настройка?
Антея,

Я исправил раздел Win! :)
Jorgesys

8

Вы можете создать геттер и сеттер, выполнив следующие действия:

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

Вот и все. Удачного кодирования!


8
  • создать переменную
  • щелкните правой кнопкой мыши
  • выберите «Создать», а затем выберите «Getter and Setter» вариант

Меню правой кнопки мыши


Любой ярлык для конструкторов Kotlin ? Alt + Ins не показывает мне возможность создания конструкторов.
Arbaz.in

Ты пробовал Alt + Enter?
Анджело Полотто

для этого случая я не знаю, что происходит. Вы разместили свою проблему на форуме Intellij?
Анджело Полотто

Если вы найдете решение, пожалуйста, поделитесь им здесь.
Анджело Полотто

8

Студия Android и Windows:

fn+ alt+insert

Изображение меню


1
Ваше изображение не появилось в сообщении правильно, и вы не заполнили описание изображения - оно говорит: «введите описание изображения здесь».
Лорд Уилмор

6

Поместите курсор под переменными -> щелкните правой кнопкой мыши -> Generate -> Getter and Setter -> Выберите переменные для получения и установки

или

Alt + Insert -> Getter and Setter -> Выбрать переменные


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

Я не понял. Alt + Insert -> Getter and Setter -> Выберите переменные
Baby

5

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


4

Вы можете использовать AndroidAccessorsПлагин Android Studioдля генерации getter и setter без m в качестве префикса к методам

Пример: средний; Будет генерировать 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 во время разработки. Также есть библиотека Hrisey, которая основана на Lombok. Проще говоря, это поддержка Lombok + Parcellable.


1
К сожалению, Project Lombok ломается в проектах библиотек Android. Это ненадежно сейчас.
Игорь Ганапольский

1
@IgorGanapolsky какие-либо доказательства?
Артем Новиков,

1
@IgorGanapolsky Project Lombok отлично работает с Android. Смотрите руководство по установке .
naXa


2

используйте диалог code => generate => getter () и setter (), выберите все переменные, сгенерируйте все методы getter (), setter () одновременно.


1

Еще один забавный способ

Введите имя параметра в любом месте объекта после определения, вы увидите сеттер и геттер, просто выберите и нажмите ввод :)

Я пробовал с 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, а не на затмение
Alberto M
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.