티스토리 뷰

반응형



[Android/Tip] Android 코드 자동 생성(Generate)

Singleton(싱글톤) / Getter / Setter / Constructor / toString

안드로이드 스튜디오를 이용하면서 단순작업이나 유용한 코드 자동 생성 기능들에 대해 알아보자.

( ※ 불완전 코드를 완성 시키기 위한 힌트가 아닌 매크로와 같은 기능이다 . )


  Singleton Class 만들기

안드로이드 스튜디오(Intellij)에서 Singleton Class를 생성할 때 만들어 Singleton Class 만드는 시간과 노력을 몇초라도 줄여보자

아래와 같은 코드로 생성이 된다.

여러가지 Singleton 방식이 있지만 기본적인 형태의 Singleton으로 생성이 된다.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
public class DWPermission {

    private static final DWPermission ourInstance = new DWPermission();

    public static DWPermission getInstance() {
        return ourInstance;
    }

    private DWPermission() {
    }
}





  Genterate 이용하기

윈도우 안드로이드 이클립스 기준으로   alt  +  insert  를 눌러보면 아래와 같은 메뉴가 나온다.



아래의 클래스로 생성해보자.

 ◎  테스트 클래스

1
2
3
4
5
public class DWPermission {
    String str;
    int number;
    boolean isBoolean;
}


 1   Constructor 생성자


생성자에 입력받을 변수를 선택한다.  Select None을 선택하면  기본 생성자가 만들어지고

변수를 선택하고 OK 를 누르면 변수가 포함된 생성자가 만들어진다.

(여러 변수를 선택하려면 Ctrl을 누른채로 클릭하거나 맨위 변수를 선택하고 쉬프트를 누른채로 가장 마지막 변수를 선택하면 여러 변수를 선택할 수 있다.)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
public class DWPermission {
    String str;
    int number;
    boolean isBoolean;

    // Select None으로 만들어진 생성자
    public DWPermission() {
    }

    // 변수 선택으로 만들어진 생성자
    public DWPermission(String str, int number, boolean isBoolean) {
        this.str = str;
        this.number = number;
        this.isBoolean = isBoolean;
    }
}


 2   Getter/Setter

변수에 대한 Get/Set 메소드를 생성해준다.

간략하게 Getter/Setter를 선택하면 아래와 같이 변수를 선택하고

Setter의 형태에 따라 Builder 형태로도 만들어 준다.


 2 - 기본적인 형태는 아래와 같이 생성이 된다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class DWPermission {
    String str;
    int number;
    boolean isBoolean;

    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public boolean isBoolean() {
        return isBoolean;
    }

    public void setBoolean(boolean aBoolean) {
        isBoolean = aBoolean;
    }
}


 2 - 2  Builder를 선택하면 아래와 같이 만들어 진다.

완벽한 Builder 패턴을 만들어 주는 것은 아니므로 완성시켜 사용하도록 한다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class DWPermission {
    String str;
    int number;
    boolean isBoolean;

    public String getStr() {
        return str;
    }

    public DWPermission setStr(String str) {
        this.str = str;
        return this;
    }

    public int getNumber() {
        return number;
    }

    public DWPermission setNumber(int number) {
        this.number = number;
        return this;
    }

    public boolean isBoolean() {
        return isBoolean;
    }

    public DWPermission setBoolean(boolean aBoolean) {
        isBoolean = aBoolean;
        return this;
    }
}


 3   toString 

Java의 최상위 객체인 Object의 toString 을 살펴보면 아래와 같이 클래스 이름과  hashCode를 String형태로 리턴해준다.

1
2
3
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }



Genterate의 toString으로 변수정보를 알아 볼 수 있도록 만들어 준다.

1
2
3
4
5
6
7
8
    @Override
    public String toString() {
        return "DWPermission{" +
                "str='" + str + '\'' +
                ", number=" + number +
                ", isBoolean=" + isBoolean +
                '}';
    }


기존 Object의 toString정보를 보려면 아래의 코드를 추가해서 리턴해주도록 한다.

1
super.toString()


반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함