JAVA
JAVA 8 람다식이란?
JuBin
2020. 9. 20. 18:00
반응형
메소드를 하나의 식으로 표현한 것(익명 함수), 함수형 프로그래밍 지원, 클래스를 생성하지않고 함수 호출로
기능을 수행한다.
특징
1. 람다를 사용할 경우에는 반드시 함수형 인터페이스를 통해서만 사용할 수 있다
2. 함수형 인터페이스를 사용하지 않을경우 람다를 쓰는 모든 코드에서 컴파일에러 발생
이와 같은 오류를 방지하기위해 @FunctionalInterface 어노테이션을 사용함
함수형 인터페이스란? 단 하나의 추상메소드를 지닌 인터페이스
<람다식표현>
크게 3부분으로 나눈다
• 파라미터 : (Book book)
• 화살표 : ->
• 바디(구현부분) : book.getPrice() < 12000
ex )
//collectBook 메소드
public static List<Book> collectBook(List<Book> bookList, BookPredicate p) {
List<Book> result = new ArrayList<>();
for (Book book : bookList) {
if (p.check(book)) {
result.add(book);
}
}
return result;
}
//기존 익명클래스
List<Book> book5 = collectBook(bookList, new BookPredicate() {
@Override
public boolean check(Book book) {
return book.getPrice() < 11000;
}
});
//람다식
List<Book> book5 = collectBook(bookList, (Book book) -> book.getPrice() < 12000);
//collectBook 메소드를 통해 전체 bookList 중 가격이 12000원 이하면 true return
반응형