- 자바에서 함수형 프로그래밍을 구현하는 방식
- 클래스를 생성하지 않고 함수의 호출만으로 기능을 수행한다.
- 함수형 프로그래밍
- 순수 함수를 구현하고 호출함으로써 외부 자료에 부수적인 영향을 주지 않고 매개 변수만을 사용하도록 만든 함수
- 즉, 함수를 기반으로 구현한다.
- 입력받은 자료를 기반으로 수행되고 외부에 영향을 미치지 않으므로 병렬 처리 등에 가능하다.
- 그래서, 안정적인 확장성 있는 프로그래밍 방식으로 불린다.
- 람다 표현식 만들기
- 매개 변수와 매개 변수를 활용한 실행문으로 구현
- (매개변수) -> { 실행문; }
- 함수 이름, 반환형을 없애고 ->를 사용, { } 안이 실행문을 의미한다.
- 작성 시 유의 사항
- 매개 변수가 하나인 경우에 자료형과 괄호를 생략할 수 있다.
- 매개 변수가 두 개인 경우에는 괄호를 생략할 수 없다.
- 중괄호 안의 구현부가 한 문장인 경우에는 중괄호를 생략할 수 있다.
- 중괄호 안의 구현부가 return문을 포함하면 중괄호를 생략할 수 없다.
- 메소드 참조(method reference)
- 함수형 인터페이스를 람다식이 아닌 일반 메소드를 참조시켜 선언하는 방식이다.
- 매개 변수 타입, 개수, 반환형 모두 일치할 때 사용 가능하다.
- 람다 표현식에서 불필요한 매개변수를 제거하고 사용할 수 있도록 만들어준다.
- '::' 기호를 사용하여 표현한다.
- 클래스명 :: 메소드명 or 참조변수명 :: 메소드명
- ex) Math 함수를 사용한다고 생각해보자.
- (base, exponent) -> Math.pow(base, exponent); // 매개 변수 타입, 개수, 반환형 모두 일치
- Math::pow 형태로 사용할 수 있다.
- 함수형 인터페이스를 람다식이 아닌 일반 메소드를 참조시켜 선언하는 방식이다.
'백엔드 > JAVA' 카테고리의 다른 글
상수, 리터럴, enum (0) | 2021.08.31 |
---|---|
스트림 API (0) | 2021.08.22 |
제네릭(Generic) 문법과 Optional 클래스 (0) | 2021.08.22 |
배열 (0) | 2021.08.21 |
반복문(while문, for문) (0) | 2021.08.21 |
최근댓글