Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- execution engine
- tcp
- java
- jvm
- closeable
- 날짜쿼리
- try-catch
- 람다표현식
- resilience4j
- try-with-resources
- 4-way-handshake
- Class Loader
- jetbrain
- intelij
- feign
- zipWith
- Hotspot VM
- try-catch-finally
- 코딩테스트
- Runtime data area
- webflux
- n+1
- AutoCloseable
- 동작방식
- wagon-ssh
- optional
- GC
- circuitbreaker
- Kotlin
- springboot
Archives
- Today
- Total
JuBin's personal study blog
JAVA 8 람다식이란? 본문
반응형
메소드를 하나의 식으로 표현한 것(익명 함수), 함수형 프로그래밍 지원, 클래스를 생성하지않고 함수 호출로
기능을 수행한다.
특징
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
반응형
'JAVA' 카테고리의 다른 글
[Java] ObjectMapper란 (0) | 2020.12.23 |
---|---|
[JVM] JVM의 Memory영역 ( Stack & Heap&Static ) (0) | 2020.11.10 |
서버 기반 인증 -> token 기반 인증 (0) | 2020.10.31 |
자바1.8 Stream API 정리 (0) | 2020.09.20 |
[JAVA 8] 자바1.8 Optional이란? (0) | 2020.09.20 |