JDK 가 14 까지 나 왔 는데 함수 식 프로 그래 밍 을 못 하 는 이유 가 뭐 예요?
3104 단어 jdk함수 식 프로 그래 밍
공식 정의 부터 볼 게 요.
Functional interfaces provide target types for lambda expressions and method references.
함수 식 인 터 페 이 스 는 주로 lambda 표현 식 에 사용 되 는 것 을 알 수 있 습 니 다.이러한 인 터 페 이 스 는 유일한 추상 적 인 방법의 인터페이스(함 축 된 Object 대상 을 제외 한 공공 방법)만 정 의 했 고 처음에 SAM 형식 인터페이스(Single Abstract Method)라 고도 불 렀 습 니 다.
간단히 사용 하 다
List<Integer> list = Lists.newArrayList(1,2,3);
list.forEach(r -> {
System.out.println("re = " + Math.sqrt(r));
});
보 세 요foreach
실현,Iterable.java
에서
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
여기에 나타 난Consumer
은 함수 식 인터페이스 로 자바 8 은 자주 사용 하 는 함수 식 인 터 페 이 스 를 제공 합 니 다.boolean test(T t)
void accept(T t)
R apply(T t)
T get()
여 기 는 일일이 열거 하지 않 겠 습 니 다.구체 적 으로 자바 util.function 가방 은 모두 간단 합 니 다.잘 모 르 는 자체 구 글 입 니 다.
넓히다
그러나 jdk 가 제공 하 는 것 이 반드시 수 요 를 만족 시 킬 수 있 는 것 은 아 닙 니 다.이 럴 때 는 함수 식 인 터 페 이 스 를 사용자 정의 해 야 합 니 다.
1.일반적인 Function 이나 Consumer 는 하나의 매개 변수 만 받 을 수 있 고 BiFuntion 과 BiConsumer 도 하나의 매개 변수 만 받 아들 일 수 있 으 며 매개 변수 가 더 많은 경우 에 만족 할 수 없습니다.
consumer 를 예 로 들 면,먼저 인 터 페 이 스 를 사용자 정의 합 니 다.
@FunctionalInterface
public interface TriConsumer<T, U, W> {
void accept(T t, U u, W w);
default TriConsumer<T, U, W> andThen(TriConsumer<? super T, ? super U, ? super W> after) {
Objects.requireNonNull(after);
return (l, r, w) -> {
accept(l, r, w);
after.accept(l, r, w);
};
}
}
함수 식 인 터 페 이 스 는 일반적으로@FunctionalInterface 주석 을 사용 하여 이 인 터 페 이 스 는 함수 식 인터페이스 임 을 설명 합 니 다.여기 서 andThen 방법 을 제공 하여 연속 호출 을 지원 합 니 다.사용 방법
TriConsumer<Integer, Integer, Integer> consumer = (a, b, c) -> {
System.out.println(a + b + c);
};
consumer.accept(5,6,7);
funtion 유사,여기 예 를 들 지 않 겠 습 니 다.2.이상 포획
Functional Interface 가 제공 하 는 인 터 페 이 스 는 일반적으로 이상 을 던 지지 않 는 다.이것 은 우리 가 사용 할 때 방법 체 내부 에서 이상 을 포착 해 야 한 다 는 것 을 의미한다.여기 서 이상 을 던 질 수 있 는 인 터 페 이 스 를 정의 한다.
@FunctionalInterface
public interface InterfaceException<T> {
void apply(T t) throws Exception;
}
총결산JDK 가 14 까지 나 왔 는데 함수 식 프로 그래 밍(추천)을 못 하 는 이유 가 있 으 면 여기까지 소개 해 드 리 겠 습 니 다.jdk 함수 식 프로 그래 밍 에 관 한 더 많은 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 저 를 많이 사랑 해 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
2022년 3월 21일 TIL1. JVM & JDK JVM JRE 자바 실행 환경의 약자로 자바 프로그램을 실행하기 위한 도구들이 들어있으며 JVM이 이 안에 포함된다 JDK JRE + 개발툴 javac는 컴파일 명령어 HelloWorld.cl...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.