inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

더 자바, Java 8

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

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

388

terecal

작성한 질문수 162

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

답변 1

3

백기선

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

CompletableFuture의 get 실행에 대해 궁금한 점이 있습니다

0

231

2

기본 인터페이스의 기본 제공 메서드 관련 질문 (왜 이걸 사용하는지)

0

515

2

static 과 metaspace 관련 질문있습니다.

0

707

0

Map의 가장 큰 특징이 key는 null이 아니다

0

2377

2

Optional 질문드립니다.

0

469

0

인텔리제이 콘솔창

0

578

0

Supplier를 쓰는 이유

0

1354

1

allOf()에서 컬렉션으로 반환하는 것을 설명할 때 코드

0

706

1

[참고] LTS주기

0

468

1

orElseThrow()

1

1082

2

findFirst함수

0

356

1

메서드 레퍼런스

1

477

1

primitive type 질문

0

301

1

FunctionalInterface 상속 관계 질문

0

292

1

함수형 인터페이스를 왜 사용하나요?

1

496

1

while문 세미콜론

0

430

1

flatMap Optional과 Stream에서의 차이점을 제가 잘 이해했는지 헷갈립니다!

0

404

1

람다식과 익명 클래스

0

318

1

steam api 예제 git 주소

3

782

1

thread.sleep질문

0

382

2

.orElse 매개변수 질문

0

259

1

isPresent( ) 와 null 질문

0

332

1

예제 코드 질문

2

286

1

코드 질문있습니다.

0

233

1