Android Studio에서 게터 및 세터를 자동으로 생성하는 방법


294

지정된 클래스에서 getter 및 setter를 자동으로 생성하기위한 Android Studio의 바로 가기가 있습니까?

답변:


522

편집기에서 Windows 용 + 또는 Mac 용 Alt+ Insert를 사용하면 클래스의 모든 필드에 대해 getter 및 setter 메소드를 쉽게 생성 할 수 있습니다. 이것은 메뉴 표시 줄-> -> 를 사용하는 것과 동일한 효과를 갖습니다.CommandNCodeGenerate...

여기에 이미지 설명을 입력하십시오

Shift 또는 Control 버튼을 사용하여 게터와 세터를 추가하는 데 필요한 모든 변수를 선택하십시오


77
Mac 사용자에게는 control + enter입니다.
anita

ivar _username 및 getter 및 setter와 같은 getter 및 setter를 작성할 가능성은 getUsername 및 setUsername입니까?
Nicolas Manzini

맥 컨트롤 + N에
아론 년 Kogan

2
Java의 경우 잘 작동하지만 앱 개발을 위해 안드로이드 스튜디오에서 kotlin을 사용하는 경우 java와 같은 getter / setter를 생성하는 방법은 무엇입니까?
SIVAKUMAR.J

2
코 틀린 클래스의 getter와 setter를 생성하는 방법
Ashik Azeez에게


29

안드로이드 스튜디오 및 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

다음 단계에 따라 getter 및 setter를 생성 할 수 있습니다.

  • 변수를 먼저 선언하십시오.
  • 변수 선언 부분으로 커서를 이동시키는 키보드 에서 ALT+ Insert를 클릭하십시오.
  • 이제 생성자를 선택하고 키보드에서 Ctrl+ A를 누르고를 클릭 Enter하여 생성자를 만듭니다.
  • 이제 커서를 생성자 닫기 괄호의 다음 줄에 다시 놓고 ALT+를 클릭 INSERT하고 getter 및 setter를 선택한 다음 CTRL+ A를 다시 눌러 모든 변수를 선택하고 적중 Enter합니다.

그게 다야. 행복한 코딩 !!


8
  • 변수를 만들다
  • 마우스 오른쪽 버튼으로 클릭
  • "생성"을 선택한 다음 "Getter and Setter"옵션을 선택하십시오.

마우스 오른쪽 버튼 클릭 메뉴


kotlin 생성자의 단축키는 무엇입니까? Alt + Ins 생성자 생성 옵션을 표시하지 않습니다.
Arbaz.

시도 했습니까 Alt + Enter?
Ângelo Polotto

그 경우에, 나는 무슨 일이 일어나고 있는지 모른다. Intellij 포럼에 문제를 게시 했습니까?
Ângelo Polotto

해결책을 찾으면 여기에서 공유하십시오.
Ângelo Polotto

8

Android Studio 및 Windows :

fn+ alt+insert

메뉴 이미지


1
이미지가 게시물에 올바르게 표시되지 않아 이미지 설명을 완료하지 않았습니다. '여기에 이미지 설명을 입력하십시오'라는 메시지가 표시됩니다.
LordWilmore

6

변수 아래에 커서를 놓으십시오-> 마우스 오른쪽 단추로 클릭-> 생성-> Getter and Setter-> 변수를 선택하여 가져 오기 및 설정하십시오.

또는

Alt + Insert-> Getter and Setter-> 변수 선택


문제는 단일 단축키로 게터와 세터를 생성 할 수 있는지에 대한 것이 었으므로 메뉴에서이 옵션을 찾을 수있는 곳은 아닙니다.
R Pelzer

나는 이해하지 못했다. Alt + Insert-> Getter and Setter-> 변수 선택
Baby

5

여기 에 언급 된 것처럼 접두사 및 접미사 (예 : m의 경우 변수)를 고려하도록 getter / setter 생성을 사용자 정의 할 수도 있습니다. 로 이동하여 File->Settings확장 하고을 Code Style선택한 Java다음 Code Generation탭 아래에서 접두사 / 접미사를 추가하십시오 .


4

AndroidAccessors플러그인을 사용 Android Studio하여 메소드 접두어로 m없이 getter 및 setter를 생성 할 수 있습니다.

예 : mId; 생성 getId()setId()대신 getmId()setmId()

플러그인 스크린 샷


4

이 답변은 귀하의 질문을 다루지 만 정확한 답변 이 아닙니다. =) 최근에 알게 된 흥미로운 도서관이며 여러분과 공유하고 싶습니다.


프로젝트 롬복은 같은 게터, 세터와 같은 일반적인 방법을 생성 할 수 equals()hashCode(), toString()당신의 클래스에 대한 자동. 상용구 코드를 줄이는 주석으로 대체합니다. Lombok을 사용하여 작성된 코드의 좋은 예를 보려면 기본 페이지에서 비디오를 보거나이 기사를 읽으십시오 .

Lombok은 컴파일 타임 전용 라이브러리이기 때문에 Lombok을 사용한 Android 개발은 쉽고 안드로이드 응용 프로그램을 더 무겁게 만들지 않습니다. 하는 것이 중요 구성 제대로 안드로이드 프로젝트를.

다른 예시:

import lombok.Getter;
import lombok.Setter;

public class Profile {

  @Getter @Setter
  private String username;

  @Getter @Setter
  private String password;

}

롬복을 이용한 안드로이드 개발이 가능합니다. Lombok은 컴파일 타임에만 의존해야합니다. 그렇지 않으면 Lombok 전체가 DEX 파일에 저장되어 소중한 공간을 낭비하게됩니다. Gradle 스 니펫 :

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

또한 개발시 IDE에서 Lombok 기능을 지원하기 위해 Lombok IntelliJ 플러그인 을 추가 할 수 있습니다 . 또한 롬복을 기반으로 한 Hrisey 라이브러리가 있습니다. 간단히 말해서 Lombok + Parcellable 지원입니다.


1
불행히도 Project Lombok은 Android 라이브러리 프로젝트에서 중단됩니다. 지금은 신뢰할 수 없습니다.
IgorGanapolsky

1
@IgorGanapolsky 어떤 증거?
Artem Novikov

1
@IgorGanapolsky Project Lombok은 Android에서 잘 작동합니다. 설치 안내서를 참조하십시오 .
naXa


2

code => generate => getter () 및 setter () 대화 상자를 사용하고 모든 변수를 선택하고 모든 getter (), setter () 메소드를 한 번에 생성하십시오.


1

또 다른 재미있는 방법

정의 후 객체의 아무 곳에 나 매개 변수 이름을 입력하면 setter와 getter가 표시됩니다. 그냥 선택하고 Enter를 클릭하십시오 :)

Android Studio 2.3으로 시도했습니다.


-1

마우스 오른쪽 버튼을 클릭하고 Editor선택 Source -> Generate Getters and Setters하거나 Alt+ Shift+를 누릅니다.S 여기에 이미지 설명을 입력하십시오


2
이클립스입니다. 그는 Android Studio를 요청했습니다.
WannaGetHigh

-2

누군가가 Eclipse로 작업하는 경우를 대비하여

Windows 8.1 OS | 이클립스 유휴 루나

최상위 변수 선언 private String usernameEclipse는 친절하게 화면 왼쪽에 경고를 생성합니다. 경고를 클릭하면 몇 가지 제안이 표시되고 생성을 선택하십시오.여기에 이미지 설명을 입력하십시오


1
이 문제는 일식이 아닌 Android Studio에 관한 것입니다
Alberto M
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.