-
람다식
특징
1. 함수 (메서드)를 간단한 ' 식'으로 표현하는 방법
2. 익명 함수(이름이 없는 함수 , anonymous function)메서드를 람다로 바꿀떄 반환타입과 메서드 이름을 지우고 () { 이 사이에 -> 화살표를 넣는다
이름이 없어지기때문에 익명함수라고 말한다.3.메서드를 간단히 표현하기 위한것.
int max(int a, int b){ return a > b ? a: b; // (a,b) -> a > b ? a : b }
함수와 메서드의 차이
- 근본적으로는 동일, 함수는 일반적용어, 메서드는 객치지향 개념 용어이다.
- 함수는 클래스에 독립적'
- 메서드는 클래스에 종속적람다식 작성하기
1. 메서드의 이림과 반환타입을 제거하고 '->'를 블록{} 앞에 추가한다.int max3(int a, int b){ return a> b? a: b; // (int a, int b) -> {return a>b ? a:b} }
2. 반환값이 있는 경우, 식이나 값만 적고 return문 생략 가능( 끝에 ';'안 붙임)(int a, int b) ->{return a>b ? a: b;} -> (int a, int b) -> a > b ? a : b
3. 매개변수의 타입이 추론 가능하면 생략가능(대부분의 경우 생략가능)(int a, int b) -> a > b ? a : b -> (a , b) -> a > b ? a : b
람다식 작성하기 주의사항
1. 매개변수가 하나인 경우, 괄호 () 생략가능(타입이 없을 떄만)
(a) -> a*a -> a -> a*a OK
(int a) -> a*a -> int a -> a*a 에러
2. 블록 안의 문장이 하나뿐 일때, 괄호{} 생략가능(끝에 ';' 안 붙임)
(int i) - >{System.out.print(i);}=
(int) -> System.out.print(i)
'JAVA' 카테고리의 다른 글
#Builder 패턴 (0) 2021.05.11 컬렉션 프레임웍과 함수형 인터페이스 (0) 2021.04.05 인터페이스 Predicate<T> (0) 2021.04.05 JRE , JDK ? (0) 2021.03.04 JAVA란? (0) 2021.03.04