본문 바로가기
Java

함수형 인터페이스 와 람다표현식

by 혀눅짱 2023. 4. 11.

백기선 강사님의  더 자바 8 인프런 강의 참조

함수형 인터페이스 (Functional Interface)

  • ●  추상 메소드를 딱 하나만 가지고 있는 인터페이스
  • ●  SAM (Single Abstract Method) 인터페이스
  • ●  @FuncationInterface 애노테이션을 가지고 있는 인터페이스

 

@FunctionalInterface
public interface RunSomething {

    void doIt();

    static void print(){
        System.out.println(1);
    }
}

 

추상 메소드가 딱하나다 스태틱은 몇개가 있던 추상메소드가 하나면된다.

기존 인터페이스를 구현하려면 익명오브젝트로 구현했었다.

RunSomething runSomething2 = new RunSomething() {
    @Override
    public void doIt() {
        System.out.println(1);
    }
};
runSomething2.doIt();

 

하지만 함수형인터페이스일 경우 람다표현식으로 표현이 가능하게됨.

 

  1. 람다 표현식 (Lambda Expressions)
  • 함수형 인터페이스의 인스턴스를 만드는 방법으로 쓰일 수 있다.
  • ●  코드 간략화
  • 메소드 매개변수, 리턴 타입, 변수로 만들어 사용할 수도 있다.
public class Foo {
    public static void main(String[] args) {
        RunSomething runSomething = () -> {
            System.out.println(1);
            System.out.println(1111);
        };

        runSomething.doIt();

    }
}

 

'Java' 카테고리의 다른 글

Enum  (0) 2023.10.27
Java Stream  (0) 2023.04.20
람다 메소드 레퍼런스  (0) 2023.04.13
String == 비교와 equals비교  (0) 2023.02.16