람다 표현식(Lmabda Expression)
익명 클래스를 사용하면 가독성이 떨어지고 불편합니다.
이를 보완하기 위하여 람다 표현식이 만들어졌습니다.
람다 표현식은 대신에 메서드가 "하나"인 것들만 가능합니다.
Java에 있는 메서드가 하나인 인터페이스
- java.lang.Runnable
- java.util.Comparator
- java.io.FileFilter
- java.security.PrivilegeAction
- java.nio.file.PathMatcher
- java.lang.reflect.InvocationHandler
람다 표현식의 예
(int x, int y) -> x + y
() -> 43
(String s) -> { System.out.println(s); }
람다 표현식의 구조
매개 변수 목록 | 화살표 토큰(Arrow Token) | 처리 식 |
(int x, int y) | -> | x + y |
람다 표현식의 특징
- 람다 표현식은 단순한 처리를 위하여 익명 클래스를 만들 필요가 없기 때문에 필요한 코드의 양이 줄어듭니다.
// 익명 클래스 사용 Runnable r1 = new Runnable() { @Override public void run(){ System.out.println("Hello World!"); } } // 람다 표현식 사용 Runnable r2 = () -> System.out.println("Hello World!");
- 람다 표현식은 함수로 처리되기 때문에 .class 파일을 생성하지 않습니다.
- 자바에서 제공하는 Functional Interface를 활용할 수 있습니다.
내용 참고 : 자바의 神 (로드북)
'자바 탐구' 카테고리의 다른 글
자바) Stream API - 3) 스트림(Stream) (0) | 2024.06.09 |
---|---|
자바) Stream API - 2) 함수형 인터페이스(Functional Interface) (2) | 2024.06.09 |
스프링) 스프링이란? (0) | 2024.05.14 |
JPA) N + 1 문제 (0) | 2023.08.01 |
자바) 예외 클래스 (0) | 2023.08.01 |