본문 바로가기
백엔드/Java

람다의 표현식

by 1005ptr 2018. 6. 6.
반응형

람다를 사용하면 좋은 상황

- 인스턴스가 아니라 기능 하나를 정의해서 전달해야 하는 상황

- 메서드 하나만 있는 인터페이스를 구현하는 상황


생략 규칙

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

댓글