• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

함수형 컴퍼넌트 추상 메서드는 무조건 한개인거죠?

21.04.18 11:31 작성 조회수 272

0

질문

함수형 인터페이스는 추상 메서드가 무조건 한개인게 규칙인가여? 그런 규칙은 왜 있는것일까여?

내용 정리

질문:

람다 표현식을 사용하는 이유:

답변:

함수형 인터페이스를 다음과 같이 만들고 

// src\main\java\me\whiteship\java8to11\RunSomething.java
package me.whiteship.java8to11;

@FunctionalInterface
public interface RunSomething {
void doIt();
}

이걸 foo 클래스의 내부 클래스로 만들어서
구현한뒤 호출한다고 치자
람다 표현식 없이 다음과 같이 구현 가능
ex)
// 람다 표현식을 이용해 인터페이스를 구현 + 실행
package me.whiteship.java8to11;

public class Foo {
    public static void main(String[] args) {
        RunSomething runSomething = new RunSomething() {
            @Override
            public void doIt() {
                System.out.println("함수형 인터페이스 구현해 보기 doit!!");
            }
        };  // 뒤에 ; 붙여야 함
        runSomething.doIt();
    }
}

그러나 람다 표현식을 사용하면 좀더 간단하게 구현 가능

ex)

람다 표현식을 사용해서 좋은점:

내부 구현 클래스를 좀더 간단하게 작성 가능 즉 new 키워드 없이 내부 구현 클래스 및 구현 함수를 작성 가능

답변 1

답변을 작성해보세요.

3

네 무조건 한개여야 합니다. 반대로 메소드가 두개 이상인인터페이스에 함수형 표현식인 람다 표현식을 어떻게 대응 시킬 수 있을지 방법이 있을까요?