상세 컨텐츠

본문 제목

[Lambda] 함수형 인터페이스 : BinaryOperator

Java

by kwanghyup 2020. 6. 19. 03:51

본문

import java.util.function.BinaryOperator;

public class BinaryOperatorTest {
    /*
        2개의 매개변수타입 반환타입 모두 같다.
        public T apply(T t, U u) 구현  
    */

    // 문자열의 길이를 비교해서 길이가 긴 문자열 반환
    public static void main(String[] args) {

        // 익명 객체
        BinaryOperator<String> binaryOperator = new BinaryOperator<String>() {
            @Override
            public String apply(String s1, String s2) {
                return s1.length() == s2.length() ?
                        "두 문자열의 길이는 같음" : s1.length() > s2.length() ? s1 : s2;
            }
        };

        // 람다
        BinaryOperator<String> lambda
                = (s1, s2) -> s1.length() == s2.length() ?
                    "두 문자열의 길이는 같음" : s1.length() > s2.length() ? s1 : s2;


        String str1 = "jsp";
        String str2 = "asp";
        String str3 = "spring";

        // 익명 객체 테스트
        String result = binaryOperator.apply(str1,str2);
        System.out.println(result);
        result = binaryOperator.apply(str1,str3);
        System.out.println(result);

        // 람다 테스트
        result = lambda.apply(str1,str2);
        System.out.println(result);
        result = lambda.apply(str1,str3);
        System.out.println(result);

    }
}

관련글 더보기

댓글 영역