함수형 인터페이스

のの·2020년 12월 27일
  • 추상메소드가 하나뿐인 인터페이스를 함수형 인터페이스라고 한다.
  • 자바8 부터는 람다식을 사용하여 함수형 인터페이스의 인스턴스를 나타낼 수 있다.
  • 함수형 인터페이스에는 여러 개의 default 메서드가 있을 수 있다.
  • 함수형 인터페이스의 인스턴스를 생성하기 위해 익명 클래스 등을 주로 사용했지만 람다식을 이용하면 편하다.
  • 자바8에서 추가된 @Functional Interface 애노테이션은 함수형 인터페이스 임을 나타낸다.
  • Runnable, ActionListener, Comparable은 함수형 인터페이스 이며 자바8 이전에는 익명 클래스의 객체를 생성하거나 이러한 인터페이스를 구현해야했지만 람다식을 이용하여 편리하게 구현할 수 있다.
  • Runnable 인터페이스의 인스턴스를 람다식을 이용하여 아래처럼 얻을 수 있다.
    Runnable r = () -> System.out.println("orclejava community");
  • 쓰레드를 생성할 때 람다식을 이용할 수 있다.
    new Thread( () -> System.out.println("oraclejava community");
package functionalInterface;

@FunctionalInterface
interface Worker{
    public void work();
}

public class FiTest {

    static void execute(Worker worker){
        worker.work();
    }

    public static void main(String[] args) {
        // 익명클래스
        execute(new Worker() {
            @Override
            public void work() {
                System.out.println("hello worker");
            }
        });

        // 람다
        execute( () -> System.out.println("hello lambda worker"));

    }
}


실행결과
hello worker
hello lambda worker
profile
wannabe developer

0개의 댓글