Java 8 - Function 예제

By JS | Last updated: May 26, 2021

Java 8의 Function은 1개의 인자(Type T)를 받고 1개의 객체(Type R)를 리턴하는 함수형 인터페이스입니다.

public interface Function<T, R> {

    R apply(T t);

}

Example 1 : Function

다음 예제는 Function 구현 및 apply()가 어떻게 동작하는지 알려줍니다. apply()에 Integer 객체를 인자를 전달하면 그 결과가 Integer 객체로 리턴됩니다.

import java.util.function.Function;

public class FunctionExample1 {

    public static void main(String[] args) {

        Function<Integer, Integer> func1 = x -> x * x;

        Integer result = func1.apply(10);

        System.out.println(result);
    }
}

Output:

100

Example 2 : andThen()

다음 예제는 andThen()이 어떻게 동작하는지 알려줍니다. apply()의 인자는 먼저 func1에 전달되며, func1의 결과가 func2의 인자로 전달됩니다. 그리고 func2의 결과가 리턴됩니다.

import java.util.function.Function;

public class FunctionExample2 {

    public static void main(String[] args) {

        Function<Integer, Integer> func1 = n -> n * n;
        Function<Integer, String> func2 = n -> "result: " + n;

        String result = func1.andThen(func2).apply(10);

        System.out.println(result);
    }
}

Output:

result: 100

Example 3 : compose()

다음 예제는 compose()에 대해서 소개합니다. multiply.compose(add)는 add와 multiply 함수를 합성합니다. addAndMultiply.apply(1)는 1이 add 함수에 인자로 전달되며, 그 결과가 multiply 함수에 전달되며 결과가 리턴됩니다.

import java.util.function.Function;

public class FunctionExample3 {

    public static void main(String[] args) {

        Function<Integer, Double> add = n -> n + 2.0;
        Function<Double, Double> multiply = n -> n * 5.0;
        Function<Integer, Double> addAndMultiply = multiply.compose(add);

        Double result = addAndMultiply.apply(1);

        System.out.println(result);
    }
}

Output:

15.0

참고

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha