강의

멘토링

커뮤니티

Inflearn Community Q&A

terecal0050's profile image
terecal0050

asked

More Java, Java 8

Introduction to functional interfaces and lambda expressions

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

Written on

·

384

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 키워드 없이 내부 구현 클래스 및 구현 함수를 작성 가능

그러나java

Answer 1

3

whiteship님의 프로필 이미지
whiteship
Instructor

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

terecal0050's profile image
terecal0050

asked

Ask a question