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

gskm77037님의 프로필 이미지

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 서비스 개발

[해결완료] 람다 단일 실행문 중괄호 제거

작성

·

453

0



[질문 내용]

안녕하세요 영한님, 많은 강의를 수강하고 입문으로 돌아왔습니다.

질문 게시판을 읽어보니 자바 언어관련은 강의 연관성이 떨어지는 것 같아서 고민되었지만 정말 궁금한 것이 있어서 질문 드립니다.

 

람다식에서 단일 실행문의 중괄호를 생략할 수 있다고 알고 있는데, 컴파일 에러가 나서 consumer 나 함수형 인터페이스 등 구글링을 계속 하고 책을 봐도 이유를 알 수 없네요...

혹시 괜찮으시다면 이유나 키워드 알려주시면 감사하겠습니다. 바쁘실텐데 읽어주셔서 감사합니다!!

아래와 같이 람다식에 중괄호를 생략하면 컴파일 에러가 발생합니다

 

.ifPresent(u -> {throw new IllegalStateException("이미 존재하는 회원입니다.");});

.ifPresent(u -> throw new IllegalStateException("이미 존재하는 회원입니다."));


답변 1

2

gskm77037님의 프로필 이미지
gskm77037
질문자

해결하였습니다..

자바에서 람다 본문은 표현식이거나 블록이여야 하는데 thorw는 명령문이라서 블록을 지우면 사용할 수 없다고 하네요.

간단하게 다른 예를 들어보면 return도 명령문이여서 똑같이 사용할 수 없네요

혹시나 같은 궁금증을 가지실 분이 있을까 남겨봅니다.

감사합니다 ㅎㅎ

김영한님의 프로필 이미지
김영한
지식공유자

스스로 잘 해결하셨습니다^^