이클립스  getter, setter, toString 자동으로 만들기
자바는 객체지향 언어이고 캡슐화라는 개념이 있습니다.
객체의 멤버변수를 private로 숨기고 해당 멤버변수의 접근을 getter와 setter로만 접근하게 함으로써 객체의 상태에 마음대로 접근할 수 없도록 하는 것입니다.

또한 이는 JSP 자바빈 규약에도 명시되어 있는 부분입니다. 자바빈 규약에는 객체가 가지는 멤버변수의 접근제어자가 private이고 해당 멤버 변수에 접근할 수 있는 getter메서드와 setter 메서드가 각각 쌍으로 있어야 하며,  메서드명은 setter의 경우 set이후에 멤버변수 첫글자를 대문자로 하는 식으로 작성해야 한다고 되어있습니다.

예를들어 Person 클래스의 pviate Integer age 라는 멤버변수의 setter는 public void setAge(Integer age)와 같이 작성되어야 하는 것입니다.
이러한 자바빈 규약이나 캡슐화는 어플리케이션 개발을 함에 있어서 자주 사용되는 관례입니다.

때문에 이를 손쉽게 어노테이션만으로 지원해주는 lombok같은 라이브러리도 존재하며 일부 언어에서는 객체를 만들면 자동으로 지원해주기도 합니다.
그러나 안타깝게도 자바에서는 lombok같은 라이브러리를 사용하거나 IDE의 힘을 빌려야 합니다.

만약 멤버변수의 수가 매우 많아진다면, 개발자는 매우 엄청난 노가다? 를 겪어야 할것입니다.
다행스럽게 우리의 이클립스는 이러한 기능을 지원해주고 있습니다.



다음과 같이 Person 클래스가 있습니다.
각 멤버에 대해 getter와 setter를 만들어 보겠습니다.


Person.java
1
2
3
4
5
6
7
8
package org.test.domain;
 
public class Person {
     
     private Integer age;                                                             
     private String name;                                           
}
 
cs

 

 

getter와 setter를 만들고 싶은 멤버변수를 블록을 씌워 선택한 후
이클립스 상단메뉴 Source 탭에서 Generate Getters and Setters...를 클릭합니다.



우측의 select All 등의 버튼을 눌러 모두 선택, 모두 선택 취소, getter만 선택, setter만 선택 등을 할 수 있고, 하위 체크박스를 통해 원하는 멤버변수의 getter 또는 setter를 작성할 수 있습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package org.test.domain;
 
 
public class Person {
     
     private Integer age;
     private String name;
     
     
     public Integer getAge() {
           return age;
     }
     public void setAge(Integer age) {
           this.age = age;
     }
     public String getName() {
           return name;
     }
     public void setName(String name) {
           this.name = name;                                                           
     }
}
 
cs

 


 
같은 방법으로 toString과 equals(동등성 비교연산) 생성자 등을 멤버변수를 이용하여 자동으로 만들 수 있습니다.



이러한 기능을 아는것과 모르는것은 삽질을 하느냐 마느냐의 차이기 때문에 알아두면 유용할 것입니다.

블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,