[JAVA] 람다 함수형 인터페이스 1
2021. 8. 12. 23:23
@FunctionalInteface에 대하여
자바는 메소드를 단독으로 선언할 수 없고 항상 클래스의 구성 멤버로 선언하기 때문에
람다식을 단순히 메소드를 선언하는 것이 아니라
이 메소드를 가지고 있는 객체를 생성해 낸다.
그러므로 람다식은 본인의 식을 만들어낼 객체가 필요하다
인터페이스 변수 = 람다식;
처럼 선언하면 람다식은 인터페이스 변수에 대입된다.
이 말은 람다식은 인터페이스의 익명 구현 객체를 생성한다는 뜻이 된다.
인터페이스는 직접 객체화할 수 없기 때문에 구현 클래스가 필요한데,
람다식은 익명 구현 클래스를 생성하고 객체화한다.
이런식으로 람다를 이용해 인터페이스에 함수를 참조시킬수 있게 된다.
@FunctionalInterface를 사용하면 추상 메소가 두개 이상이 되지 않게끔 체크해준다.
매개변수가 있는 경우에는 다음처럼 된다.
리턴값이 있는 경우에는 다음과 같다
여기서 void말고 int로 바꿔주는 것이 포인트
x+y에 값이 대입되어 값이 잘 출력된다.
이렇게 인터페이스를 만들고 거기에 자기가 메소드를 커스터마이징해서 사용한다는 점을 포인트로 삼아서 사용하는 것이 중요한것 같다
'skill > JAVA' 카테고리의 다른 글
[Java] String, StringBuilder, StringBuffer 차이 (0) | 2021.08.23 |
---|---|
[JAVA][컬렉션 프레임워크] 2. Set, Map (0) | 2021.08.16 |
[JAVA][컬렉션 프레임워크] 1. List (0) | 2021.08.10 |
[JAVA] JVM 실행순서, 메모리구조 (0) | 2021.05.17 |
[JAVA] 람다식 기초 (0) | 2021.05.08 |