Java 8 - UnaryOperator 예제

By JS | Last updated: May 30, 2021

UnaryOperator는 Type T의 인자 하나를 받고, 동일한 Type T 객체를 리턴하는 함수형 인터페이스입니다.

public interface UnaryOperator<T> extends Function<T, T> {

}

UnaryOperator는 Function을 상속하며, apply()를 호출하여 어떤 작업을 수행할 수 있습니다.

public interface Function<T, R> {

    R apply(T t);

}

Example 1 : UnaryOperator

UnaryOperator는 Lambda 표현식으로 구현할 수 있습니다. apply()에 인자를 전달하면 같은 타입의 객체가 리턴됩니다.

import java.util.function.UnaryOperator;

public class UnaryOperatorExample1 {

    public static void main(String[] args) {

        UnaryOperator<Integer> unaryOperator1 = n -> n * n;
        Integer result = unaryOperator1.apply(10);
        System.out.println(result);

        UnaryOperator<Boolean> unaryOperator2 = b -> !b;
        Boolean result2 = unaryOperator2.apply(true);
        System.out.println(result2);
    }
}

Output:

100
false

Example 2 : andThen()

Function 처럼 andThen()를 사용하여 함수들을 연결시킬 수 있습니다.(chain)

아래 코드에서 func1의 결과는 두번째 func2의 인자로 전달되고, 그 결과가 리턴됩니다.

import java.util.function.UnaryOperator;

public class UnaryOperatorExample2 {

    public static void main(String[] args) {

        UnaryOperator<Integer> func1 = n -> n * 2;
        UnaryOperator<Integer> func2 = n -> n * 3;

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

        System.out.println(result);
    }
}

Output:

60

References

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