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 |
Tags
- wagon-ssh
- feign
- java
- 코딩테스트
- GC
- zipWith
- jetbrain
- tcp
- 동작방식
- Class Loader
- resilience4j
- Hotspot VM
- intelij
- springboot
- optional
- closeable
- 날짜쿼리
- execution engine
- n+1
- Runtime data area
- 4-way-handshake
- circuitbreaker
- jvm
- try-with-resources
- webflux
- try-catch
- AutoCloseable
- 람다표현식
- try-catch-finally
- Kotlin
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 |