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

김아현님의 프로필 이미지
김아현

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

함수형 인터페이스 (전반전)

함수형 인터페이스(전반전) 람다식 질문있습니다

작성

·

336

0

convertUSD 전달값이 인터페이스 변수임에도 람다식으로 작동되는 이유가 궁금합니다

주석 밑에 코드는 람다식을 인터페이스 변수에 넣고 전달값으로 사용하는건 이해가 가는데

 

주석으로 되어있는 11번째 코드는 인터페이스 변수가 아닌 그냥 람다식을 붙여넣은건데 이게 인터페이스 convert 메소드인걸 어떻게 알았는지 모르겠네요

convert메소드가 하나만있기에 찾아내서 정상작동된건가요?

답변 1

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?
네, 맞습니다. 함수형 인터페이스는 하나의 추상메소드가 존재해야 한다는 조건이 있습니다. 두 개 이상이 있다면 어떤 메소드와 맵핑되어야 할지가 모호해지는 문제가 발생하죠. 그래서 convertUSD 에 전달하는 람다식을 메소드 내에서는 다음과 같이 Convertible 인터페이스로 받으며 Convertible 인터페이스 내에서 하나만 존재하는 convert() 라는 추상 메소드에 동작이 정의된다고 보시면 됩니다 😊

public static void convertUSD(Convertible converter, int USD) {
    converter.convert(USD);
}

감사합니다.

김아현님의 프로필 이미지
김아현

작성한 질문수

질문하기