티스토리 뷰

● 도입

- Function Interface는 input을 1개만 받을 수 있다.

- input을 2개(parameter 2개) 받고 싶을 때는 어떻게 해야할까?

- 이때 사용하는 것이 BiFunction Interface이다.

cf) input을 3개(parameter 3개) 받는 interface는 없다.

@FunctionalInterface
public interface BiFunction<T, U, R> {
	R apply(T t, U u);	// 추상 메소드
}

- input을 2개 받는 함수를 구현하는 interface이다.
- T와 U가 input parameter type / R이 return type 이다.

 

 

● 실습

- BiFunction Interface를 Lambda로 구현해보자

package com.fastcampus.functionalprogramming.chapter3;

import java.util.function.BiFunction;

public class Chapter3Section3 {
	public static void main(String[] args) {
		BiFunction<Integer, Integer, Integer> add = (Integer x, Integer y) -> {
			return x + y;
		};
		int result = add.apply(10, 10);
		System.out.println("result : " + result);
		
		// 조금 더 간단하게
		BiFunction<Integer, Integer, Integer> add2 = (x, y) -> x + y + 10;
		int result2 = add2.apply(10, 10);
		System.out.println("result2 : " + result2);
	}
}

● 아래의 경우 Lambda Expression을 더 단순하게 표현할 수 있다.

- 매개변수(parameter)의 타입이 유추 가능할 경우 타입 생략 가능
- 매개변수(parameter)가 하나일 경우 괄호 생략 가능
- 함수 body 내에서 다른 내용 없이 바로 값을 return 하는 경우 (중괄호 & return 문구) 생략 가능

 

 

● 정리

Function Interface     →  parameter를 1개 받는 Interface
BiFunction Interface  →  parameter를 2개 받는 Interface
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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 31
글 보관함