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

leeha223님의 프로필 이미지
leeha223

작성한 질문수

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

회원 서비스 개발

회원 서비스 개발 단축키 에러 / .ifPresent부분이 에러

작성

·

974

0

[질문 내용]
회원서비스개발에서 2:18에

1. 무슨 단축키를 누르면 Optional<Member> byName = 이 뜨나요? 저는 그냥 타이핑했는데 어떻게 하면 그렇게 생기죠?

2.그리고 단축키 command option v 로 byName을 result로 변경했는데 그것도 단축키를 하면 Screenshot 2023-05-24 at 2.52.45 PM.png왜 단축키를 했을 때 수업처럼 옵션이 안뜰까요

 

3.Optional<Member> byName = 부분 지우고

result부분 지우고 코드 정리했을 때 저는

.ifPresent부분이 에러가 납니다.

Screenshot 2023-05-24 at 3.14.36 PM.pngScreenshot 2023-05-24 at 3.15.02 PM.png

4.강의에 4:56 부분 control + t 로 method입력해서 Extract Method 가 뜨는데 저는 안뜹니다.Screenshot 2023-05-24 at 3.18.04 PM.pngcommand option m 단축키로 Extract Method를 시도했는데 사용할수없다는데..어떻게해야되나요

Screenshot 2023-05-24 at 3.20.36 PM.png

확인부탁드릴게요...

답변 2

0

옵션키가 뭔지 한참 고민했는데 맥에서 옵션키가 윈도우에서는 알트키네요 ㅎㅎ;

0

안녕하세요, leeha223 님. 공식 서포터즈 y2gcoder 입니다.

인텔리제이 단축키 사용에 대해 질문해주셨습니다.

무슨 단축키를 누르면 Optional<Member> byName = 이 뜨나요? 저는 그냥 타이핑했는데 어떻게 하면 그렇게 생기죠?

강의 코드 기준으로 memberRepository.findByName(member.getName()); 까지 타이핑하시고 findByName 메서드 위에 커서가 있는 상태에서 command + option + v 를 하시면 자동으로 변수로 추출할 수 있습니다.

 

그리고 단축키 command option v 로 byName을 result로 변경했는데 그것도 단축키를 하면 왜 단축키를 했을 때 수업처럼 옵션이 안뜰까요

위에서 말씀드렸던 단축키로 변수를 뽑아내면 바로 그 직후에만 뜨는 추천 변수명 리스트입니다. 이미 타이핑 한 상태에서는 해당 변수명에 커서를 올려도 생기지 않습니다.

 

Optional<Member> byName = 부분 지우고

result부분 지우고 코드 정리했을 때 저는

.ifPresent부분이 에러가 납니다.

올려주신 코드를 봤을 때

memberRepository.findByName(member.getName()); //여기 ; 때문에 밑에서 예외가 발생
    .ifPresent(m -> {...});

findByName() 후에 세미콜론을 입력하여 끝을 내셨기 때문입니다.

ifPresent()는 Optional 객체에 체이닝하여 사용할 수 있는 메서드입니다. memberRepository.findByName()의 반환 타입이 Optional 객체이기 때문에, ifPresent()를 연결해서 사용할 수 있는데, 세미콜론을 사용해서 이미 끝을 내고 그 다음에 .ifPresent()로 연결하려고 하셔서 자바 컴파일러가 해당 부분이 문제라고 알려주고 있습니다.

memberRepository.findByName(member.getName()).ifPresent(m -> {...}); 

예를 들면 ifPresent()는 위와 같이 연결해서 사용하는 메서드입니다.

감사합니다.

leeha223님의 프로필 이미지
leeha223

작성한 질문수

질문하기