자바 8부터 지원 - 함수형 프로그래밍 가능
Lambda
익명 함수(Anonymous functions)를 의미
인터페이스를 구현하는 익명 클래스의 객체 생성 부분을 수식화
메서드가 1개인 인터페이스에만 사용할 수 있음
람다 함수로 사용할 인터페이스는 @FunctionalInterface
어노테이션을 사용하는 것이 좋음
@FunctionalInterface
는 두 번째 메서드를 허용하지 않음@FunctionalInterface
가 붙은 인터페이스는 람다식이 가능함사용 방법
인터페이스명 객체명 = (매개변수, 매개변수, ...) -> { 구현내용 or 리턴값 }
Runnable r = () -> System.out.println("Lambda class");
return
도 생략 가능메소드 참조
정적(static) 메소드 참조
클래스 :: 메소드
인스턴스 메소드 참조
참조변수 :: 메소드
매개변수의 메소드 참조
클래스 :: 매개변수메소드
생성자 참조
클래스 :: new