함수형 인터페이스 - 예시

장서연·2022년 1월 17일
0

익명 객체를 람다식으로 대체

익명객체

List<String> list = Arrays.asList("abc", "aaa", "ddd", "aaa);
Collections.sort(list, new Comparator<String> (){
				public int compare(String s1, String s2) {
                            	return s2.compareTo(s1);
                            }
                        });

람다

List<String> list = Arrays.asList("abc", "aaa", "ddd", "aaa);
Collections.sort(list, (s1, s2) -> s2.compareTo(s1));

sort함수는 sort(List list, Comparator c) 이렇게 되어있다. Comparator 가 @FunctinalInterface로 되어있으므로, 람다가 들어가도 되는 것이다.

함수형 인터페이스 타입의 매개변수

@FunctionalInterface
interface MyFunction {
	void myMethod();
}

void aMethod(MyFunction f) {
	f.myMethod() // MyFuntion에 정의된 메서드 호출
}

aMethod(()->System.out.println("hello"));

함수형 인터페이스 타입의 반환타입

MyFunction myMethod(){
		MyFunction f = ()->{};
        return f;
                  

0개의 댓글