인프런 커뮤니티 질문&답변

모기물림님의 프로필 이미지
모기물림

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

체크 박스 - 단일1

item.getOpen()이 안되는 경우

작성

·

588

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로 출력되네요 👍👍

모기물림님의 프로필 이미지
모기물림

작성한 질문수

질문하기