반응형
람다를 사용하면 좋은 상황
- 인스턴스가 아니라 기능 하나를 정의해서 전달해야 하는 상황
- 메서드 하나만 있는 인터페이스를 구현하는 상황
생략 규칙
1. 메서드의 몸체가 하나의 문장으로 이뤄져있다면 중괄호의 생략이 가능하다(return문은 안됨)
(String s) -> { System.out.println(s); } |
(String s) -> System.out.println(s); |
2. 매개변수가 하나일 경우 소괄호도 생략 가능
(s) -> System.out.println(s); | s -> System.out.println(s); |
3. return문이 메소드 몸체의 유일한 문장이면 return 생략 가능
c = (a, b)-> {return a + b;}; | c = (a, b)-> a + b; |
4. 매개변수가 없으면 빈 소괄호를 쓴다. () -> { ~~~ }
5. 두줄이상이면 중괄호 써야한다
람다식은 함수형 인터페이스를 기반으로만 작성이 될 수 있다.
함수형 인터페이스(Functional Interfaces)는 메서드가 딱 하나만 존재하는 인터페이스
@FunctionalInterface
- 함수형 인터페이스에 부합하는지를 확인하기 위한 어노테이션 타입
람다식과 제네릭
Calculate<Interger> calInteger = (a, b) -> a +b;
Calculate<Double> calDouble = (a, b) -> a +b;
람다식은 같지만 전혀 다른 인스턴스의 생성으로 이어진다.
반응형
'백엔드 > Java' 카테고리의 다른 글
람다 인터페이스들 (0) | 2018.06.26 |
---|---|
람다와 함수형 인터페이스 (0) | 2018.06.25 |
이너 클래스/로컬 클래스/익명 클래스/람다 (0) | 2018.06.21 |
람다 (0) | 2018.06.06 |
병목현상 방지 (0) | 2018.05.16 |
댓글