'boolean'에 해당되는 글 1건

  1. 2020.01.28 :: Java - Lombok 사용시 주의점
카테고리 없음 2020. 1. 28. 15:32

 

 

 

다들 알고 있는 내용일 수 있겠지만, 이번에 개발하면서 알게된 Lombok 사용시 이슈 사항이다. 해당 이슈사항은 boolean, Boolean 타입을 사용하면서 prefix가 isXX인 필드를 사용할때이다.

 

1
2
3
4
5
6
7
8
@Data
public class Test {
    private boolean isBoolean;
    
    private void test() {
        this.isBoolean();
        this.setBoolean();
 
    }
}
cs

 

사실 네이밍이 잘못된 것 일수도 있다. 하지만 필자는 get가 isIsBoolean()으로 나올 것을 기대했지만, 위의 결과는 is를 생략한 isBoolean으로 getter를 생성한다. setter도 마찬가지이다. 이번에는 래퍼타입의 Boolean일 경우이다.

 

1
2
3
4
5
6
7
8
9
@Data
public class Test {
    private Boolean isBoolean;
 
    private void test() {
        this.getIsBoolean();
        this.setIsBoolean();
    }
}
cs

 

위의 결과는 첫번째 결과와 아예다른 네이밍으로 getter/setter를 생성한다. 그렇다면 마지막으로 Intellij에서 생성해주는 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
public class Test {
    private Boolean isBoolean;
 
    public Boolean getBoolean() {
        return isBoolean;
    }
 
    public void setBoolean(Boolean aBoolean) {
        isBoolean = aBoolean;
    }
}
 
public class Test {
    private boolean isBoolean;
 
    public boolean isBoolean() {
        return isBoolean;
    }
 
    public void setBoolean(boolean aBoolean) {
        isBoolean = aBoolean;
    }
}
cs

 

이처럼 boolean 필드에 isXX prefix를 넣은경우는 어떤 타입을 사용하냐, 혹은 IDEA의 자동완성을 쓰냐 혹은 Lombok을 쓰냐에 따라 getter/setter의 네이밍이 다르게 설정될 수 있다는 것을 유의하자. 필자는 이러한 점을 모르고 사용하였다가, Mapstruct로 오브젝트를 변환하는 코드에서 삽질을 무척했다.

 

 

posted by 여성게
: