Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- IntelliJ
- 자바
- 자바스크립트
- 스프링 클라우드
- Spring
- JavaScript
- EUREKA
- 코딩테스트
- 프로그래머스
- map()
- 유레카
- spring boot
- gitlab
- Java
- docker
- leetcode
- 스프링
- STS
- spring security
- 도커
- 비동기
- 스프링부트
- date
- JS
- jQuery
- SpringBoot
- OAuth
- map
- GIT
- Spring Cloud
Archives
- Today
- Total
RATSENO
[Lombok]"is"prefix가 붙은 boolean, Boolean 본문
어노테이션만 붙이면 자동으로 getter, setter, 생성자 등등 여러 가지를 생성해주는 Lombok을 자주 사용합니다.
IDE에서 자동생성으로 작성하는 경우도 있지만, 개발 편의성을 위해 Lombok을 쓰는 편입니다.
속성 값으로 boolean을 사용하며 네이밍을 is"XXXX" 로 사용할 경우
IDE에서 생성되는 getter, setter의 모습
Lombok을 이용하여 생성되는 getter, setter의 모습이 다릅니다.
이러한 경우 때문에, 간단하게 자주 사용되는 Mybatis(마이바티스)에서 해당 속성 값을 찾을 때 문제가 발생하곤 합니다.
boolean - IDE 자동생성
public class Member {
private boolean isNew;
public boolean isNew() {
return isNew;
}
public void setNew(boolean aNew) {
isNew = aNew;
}
}
Boolean - IDE 자동생성
public class Member {
private Boolean isNew;
public Boolean getNew() {
return isNew;
}
public void setNew(Boolean aNew) {
isNew = aNew;
}
}
boolean - Lombok 자동생성
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Member {
private boolean isNew;
public void test(){
this.setNew(true); //Lombok - 자동생성된 setter
this.isNew(); //Lombok - 자동생성된 getter
}
}
Boolean - Lombok 자동생성
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Member {
private Boolean isNew;
public void test(){
this.setIsNew(true); //Lombok - 자동생성된 setter
this.getIsNew(); //Lombok - 자동생성된 getter
}
}
마이바티스를 사용할 경우 xml파일에 #{isNew}를 셋팅할때,
전달된 객체에서 해당 속성의 getXXXX를 사용하게 됩니다.
객체의 속성이 boolean 타입에 "is" prefix를 사용하게 될 경우, getter가 isXXXX로 생성되기 때문에정상적인 동작이 이루어지지 않습니다.
이를 해결하기 위해서는 타입을 래퍼클래스 Boolean으로 사용하여 getter, setter를 생성하거나
boolean
타입으로 사용하고 싶으면 getIsXXXX() getter() 메서드를 작성하면 정상 동작합니다.
'DEV > JAVA' 카테고리의 다른 글
두개의 List에서 삭제된 항목, 추가된 항목 필터링 (0) | 2021.05.11 |
---|---|
CompletableFuture<T> -2 (0) | 2021.03.22 |
CompletableFuture<T> -1 (0) | 2021.03.14 |
[JAVA]TreeSet (0) | 2020.02.05 |
[JAVA]Map 컬렉션 - HashMap (0) | 2020.02.05 |
Comments