함수형 인터페이스(전반전) 람다식 질문있습니다
386
작성한 질문수 8
convertUSD 전달값이 인터페이스 변수임에도 람다식으로 작동되는 이유가 궁금합니다
주석 밑에 코드는 람다식을 인터페이스 변수에 넣고 전달값으로 사용하는건 이해가 가는데
주석으로 되어있는 11번째 코드는 인터페이스 변수가 아닌 그냥 람다식을 붙여넣은건데 이게 인터페이스 convert 메소드인걸 어떻게 알았는지 모르겠네요
convert메소드가 하나만있기에 찾아내서 정상작동된건가요?
답변 1
0
안녕하세요?
네, 맞습니다. 함수형 인터페이스는 하나의 추상메소드가 존재해야 한다는 조건이 있습니다. 두 개 이상이 있다면 어떤 메소드와 맵핑되어야 할지가 모호해지는 문제가 발생하죠. 그래서 convertUSD 에 전달하는 람다식을 메소드 내에서는 다음과 같이 Convertible 인터페이스로 받으며 Convertible 인터페이스 내에서 하나만 존재하는 convert() 라는 추상 메소드에 동작이 정의된다고 보시면 됩니다 😊
public static void convertUSD(Convertible converter, int USD) {
converter.convert(USD);
}감사합니다.
자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?
1
146
2
static이 뭐였는지 기억이 안나요 ㅜㅜ
0
119
2
Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의
0
72
1
사고력 키우는 법이 어떤게 있나요?
0
94
2
getter setter
0
103
2
섹션9. 66 메소드 오버로딩 시 질문이 있습니다.
0
80
1
안녕하세요 갑자기 프로그램 에러가 떠서 안되네요
0
76
2
변수 이름짓는법
0
114
2
intelli J 실행오류
0
115
2
혹시 이건 수학적 사고가 부족한 걸까요?
0
152
2
영상이 재생이 안됩니다.
0
167
3
이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.
0
117
2
응용이 어렵습니다.
0
206
2
IntelliJ가 보이지 않습니다.
0
187
3
JDK 버전 문의
0
130
2
BlackBox 파일 내에서 메소드 정의
0
136
1
동기화
0
123
2
Iterator 문의
0
105
1
코드 순서 문의
0
143
1
클래스 메소드
0
150
2
Quiz_05 관련 질문드립니다 !
0
118
2
다운로드가 안됩니다
0
165
2
다형성
0
120
2
HashMap
0
81
2





