Eclipse에서 getter 및 setter를 자동으로 생성하는 방법이 있습니까?


256

Android프로젝트 ( Java)를 작업 중이며 많은 변수가있는 객체를 만들었습니다. Getter와 Setter를 모두 추가 할 계획이므로 궁금한 점이 있습니다 Eclipse. 주어진 클래스에서 Getter와 Setter를 자동으로 생성하는 데 필요한 바로 가기가 있습니까?


1
나에게 스토커처럼 들리는데 ... 방금 IDE없이 모든 Java 프로그래밍을 수행 했으므로 Eclipse를 사용하는 것이 여전히 비교적 나에게 새롭습니다.
Phil

3
@krio-전 세계에서 Eclipse를 Java 개발자 용으로 사용하지 않습니다. IntelliJ에서 대부분의 작업을 수행했으며 Eclipse에서 작업을 시작하면 이와 같은 많은 질문을합니다.
vcsjones

1
@Phil, vcsjones - 매우 사실 내 사과하지만,이 체크 아웃 - google.com.au/... - 내 생각에 유래 말한다 연구가 중요하다
TeaCupApp

2
가장 빠른 방법 : ctrl + 3 ggas
dellasavia

1
@Konstantin은 같은 클래스에서 사용하지 않기를 원하므로 this.getCount()참조 할 수있을 때 호출하지 마십시오 this.mCount. 비용이 많이 드는 작업 일 수 있지만 게터와 세터를 통해 다른 개체의 변수에 액세스 할 수있는 더 깔끔한 방법입니다.
Phil

답변:


357

원하는 클래스의 소스 코드 창에서 컨텍스트 메뉴 (즉, 마우스 오른쪽 버튼 클릭)를 불러옵니다. 그런 다음 Source하위 메뉴를 선택하십시오 . 해당 메뉴를 선택 Generate Getters and Setters...하면 마법사 창이 나타납니다.

Source -> Generate Getters and Setters...

게터 및 세터를 만들 변수를 선택하고을 클릭하십시오 OK.


Getter 및 Setter가없는 'Generate Element Comment'만 있습니다. PDT 플러그인이 설치된 Eclipse 4.4.0을 사용하고 있습니다. 그 동안 이것은 mikeangstadt.name/projects/getter-setter-gen 사용할 수 있습니다 .
Xdg

Eclipse Mars.2 Release (4.5.2)에서 잘 작동합니다. 감사.
this.user3272243

약 백만 년 동안의 테디 움을 구해 주셔서 감사합니다!
Jay Edwards

11
키보드 단축키 SHIFT+ ALT+ 로이 하위 메뉴에 액세스 S한 다음을 눌러 게터 및 세터 생성 옵션을 열 수도 있습니다 R.
Rosa

여기에 내 대답이 얼마나 인기를 얻었는지 재미 있지만 요즘에는 아래의 다른 사람들이 지적한 것처럼 Lombok을 사용 합니다.
Hagai Cibulski

70

Eclipse Juno에서 기본적으로 ALT + SHIFT + S, R 은 getter / setter 대화 상자를 엽니 다. 4 개의 키를 모두 눌러야합니다.


5
SHIFT 부분을 제외하고 ALT + S, R 만 수행 할 수 있습니다.
Jason Wheeler

2
SHIFTEclipse Kepler
yellavon

SHIFTEclipse Oxygen에서 제외 할 수 있습니다 .
Jake Reece

당신은 떠날 수 없습니다 SHIFTEclipse 2018-12에서는 없습니다.
Neph

69

Right click -> Source -> Generate setters and getters

그러나 더욱 편리하게 만들기 위해 항상이지도 ALT + SHIFT+ G에서Windows -> Preferences -> General -> Keys


2
정말 유용합니다! 동일한 키 매핑을 사용합니다.
Ángel Carlos del Pozo Muela

41

다른 모든 답변은 IDE 수준에만 초점을 맞추며 게터와 세터를 생성하는 가장 효과적이고 우아한 방법은 아닙니다. 수십 개의 속성이있는 경우 관련 getter 및 setter 메소드는 클래스 코드를 매우 장황하게 만듭니다.

게터와 세터를 자동으로 생성하는 데 사용한 가장 좋은 방법은 Java 프로젝트에서 프로젝트 롬복 주석을 사용하는 것입니다 것입니다. lombok.jar은 Java 코드를 컴파일 할 때 getter 및 setter 메소드를 생성합니다.

클래스 속성 / 변수 이름 지정 및 정의에 중점을두면 롬복이 나머지를 수행합니다. 이것은 코드를 유지 관리하기 쉽습니다.

예를 들어, age변수에 대해 getter 및 setter 메소드를 추가하려는 경우 두 개의 롬복 주석 만 추가하면됩니다.

@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 코드를 보지 않는 유일한 솔루션이므로 lombok이 유일합니다. 감사!
Stefan Endrullis

2
Project Lombok (또는 적어도 아이디어)은 Java 11의 일부 여야합니다. 저는 Getter setter 생성을 피하기 위해서만 Pojo 클래스에 Kotlin을 사용합니다 : /
Wolf359

31

게터 및 세터 생성 방법-

1) 을 눌러 Alt+ Shift+ S, 다음R
2) 마우스 오른쪽 버튼으로 클릭 -> 소스가 -> 게터 및 세터 생성
3) 이동가 소스 메뉴 > 게터 및 세터 생성 -
4)를 이동 윈도우 메뉴 -> 환경 설정 -> 일반 -> 키 (쓰기 생성 게터 및 텍스트 필드에 세터)
5) 오류 전구를 클릭 필드 -> ... 게터 및 세터를 만들
6) 을 눌러 Ctrl+3 텍스트 필드에 쓰기 게터 및 세터는 선택 옵션은 게터 및 세터를 생성

경우 맥 OS 용 하려면 Alt + cmd를 +는 게터 및 세터를 선택 (S)


2
나는 이런 식으로 조금 쉽게 한 생각 : 1) Alt 키 + 시프트 + S, 다음 R
파코 Abato

1
Ctrl-3을 누른 후 "getter"를 입력하면 목록에서 누락됩니다. 모든 바로 가기,보기 등에서 작동하므로 특정 바로 가기보다 기억하기가 훨씬 쉽습니다.
Bananeweizen

@ Bananeweizen-감사합니다
Deepak Gupta

11

마우스 오른쪽 버튼 클릭-> 게터 생성 및 세터가 잘 작동하지만 Windows에서 일식으로 키보드 단축키를 만들려면 다음 단계를 수행하십시오.

  1. 창> 환경 설정으로 이동
  2. 일반> 키로 이동
  3. "빠른 지원-필드에 대한 getter / setter 만들기"목록
  4. 아래의 "바인딩"텍스트 필드에서 원하는 키를 누르십시오 (필자의 경우 ALT + SHIFT + G를 사용합니다)
  5. 적용 및 확인을 누르십시오
  6. 이제 Java 편집기에서 getter / setter 메소드를 작성할 필드를 선택하고 4 단계에서 설정 한 단축키를 누르십시오.이 창에서 확인을 눌러 메소드를 작성하십시오.

도움이 되었기를 바랍니다!


9

확실한.

소스 메뉴에서 Getters and Setter 생성 또는 선택한 필드 또는 유형의 컨텍스트 메뉴 또는 유형의 텍스트 선택을 사용하여 대화 상자를여십시오. 게터 및 세터 생성 대화 상자에는 선택한 유형의 모든 필드에 대한 게터 및 세터가 표시됩니다. 메소드는 유형의 필드별로 그룹화됩니다.

자세한 내용 은 도움말 설명서 를 참조하십시오.


8

예. 코드를 마우스 오른쪽 버튼으로 클릭하면 메뉴 팝업이 나타납니다. "Source", "Getters and Setters 생성"이 있고 그 옆에 내 시스템의 Alt + Shift + S 및 R 단축키가 표시됩니다.

마찬가지로 해당 바로 가기를 입력하여 기본 컨텍스트 메뉴 대신 하위 메뉴로 이동 한 다음 메뉴에서 선택하거나 다른 문자를 입력하여 목록에서 선택할 수있는 주 메뉴의 다른 하위 메뉴로 이동할 수 있습니다.



7

개인 필드를 먼저 만드는 것을 선호합니다

private String field;

Eclipse는 새 변수 위에 커서를 놓고 변수를 자동 강조 표시하고 Ctrl + 1을 누릅니다. 그런 다음 getter 및 setter 작성 메뉴가 표시됩니다.

Ctrl + 1을 누르면 다음에 원하는 것보다 조금 지능적입니다.


5

Alt + Shift + S + R ...을 누른 다음 Getter 또는 Setter 또는 둘 다 생성해야하는 모든 필드 만 선택하십시오.


5
  • 모든 변수 ALT + SHIFT + S 다음에 R을 선택하고 모두 선택하려면 ALT + A를 누릅니다.

  • 변수의 단일 변수 점 커서의 경우 CTRL + 1을 누르고 제안에서 두 번째 옵션으로 이동하십시오.

스크린 샷


고마워요, 내가 찾던 것입니다.
Shams Nahid



3

** Iclipse Ide에서

setter와 getter를 생성하기 위해-> alt + shift + s + r을 누른 다음 Alt A를 클릭하고 확인을 클릭하십시오.

게터 만 생성하려면-> Alt + shift + s + r을 누른 다음 g를 누르고 확인 버튼을 클릭하십시오.

세터 만 생성하려면-> alt + shift + s + r을 누른 다음 l을 누른 다음 확인 버튼을 클릭하십시오. **


2

getter 및 setter를 생성하려는 특성을 마우스 오른쪽 단추로 클릭하고 선택하십시오.

Source -> Generate Getters and Setters...

2

1) Windows-> 환경 설정-> 일반-> 키로 이동하십시오.

2) 선택 command" getter 및 setter를 생성 "

3)에서는 Binding, 단축키를 눌러 같은 용도 (로 등에 Alt + 시프트 + G )

4) 적용을 클릭 하면 갈 수 있습니다.


1
  1. Eclipse에서 클래스 파일을여십시오.
  2. 수업 이름을 두 번 클릭하거나 강조 표시하십시오.
  3. 그런 다음 소스-> 코드 삽입으로 이동하십시오.
  4. Getter and Setter를 클릭하십시오

getter / setter 메소드를 생성 할 필드를 선택하는 팝업을 엽니 다. 필드를 선택하고 "생성"버튼을 클릭하십시오. 여기에 이미지 설명을 입력하십시오여기에 이미지 설명을 입력하십시오


1

Pojos에 Project Lombok 또는 더 나은 Kotlin을 사용하십시오.

(이력서에 Kotlin을 추가하려면;))

이 :

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()

또는 Kotlin의 "데이터"클래스를 사용하십시오. 더 적은 코드 줄을 작성하게됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.