작성
·
586
32
혹시 저와 같은 문제를 겪으실 분들을 위해 제가 잠깐동안 삽질한 경험을 남깁니다.
강의를 쭉 듣던 도중에 로그를 찍는데 item.getOpen()이 안되는 상황을 겪었습니다.
그런데 item.setOpen()은 됐거든요.
찾아보니까 문제는 Item 클래스에서 open을 primitive타입인 boolean으로 선언했기 때문이었습니다.
롬복으로 게터세터를 적용할 경우 primitive boolean의 게터명명규칙이 getSomething이 아니라 isSomething입니다.
따라서 item.isOpen()을 입력해야 에러가 없습니다.
그럼 어떻게 영한님은 isOpen이 아니라 getOpen이 되었는가?
다시 잘 살펴보니 boolean이 아니라 참조형인 Boolean을 사용하셨습니다....ㅜ
null값 때문인 것 같습니다.
참조형이니까 롬복이 getOpen을 생성합니다.
생각없이 따라치다가 이런 일을 겪네요.
집중해서 열심히 듣겠습니다.
혹시 이 글을 보게된 여러분 화이팅..
답변 5
3
3
2
1
0
감사합니다!
private boolean open;
으로 정의해두고
log.info("item.open={}",item.isOpen());
영상처럼 .getOpen()이 안돼서
.isOpen()으로 했더니
item.open=false
false로 log 출력돼서
private Boolean open;
이 글 보고 변경했더니
log.info("item.open={}",item.getOpen());
.getOpen()도 되고
item.open=null
강의와 똑같이 null로 출력되네요 👍👍