JDK 가 14 까지 나 왔 는데 함수 식 프로 그래 밍 을 못 하 는 이유 가 뭐 예요?

함수 식 인터페이스
공식 정의 부터 볼 게 요.
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 은 자주 사용 하 는 함수 식 인 터 페 이 스 를 제공 합 니 다.
  • Predicate-매개 변 수 를 입력 하고 bool 결 과 를 되 돌려 줍 니 다.방법 은boolean test(T t)
  • 입 니 다.
  • Consumer--하나의 인자 가 들 어 오고 반환 값 이 없 으 며 순 소비 입 니 다.방법 은void accept(T t)
  • Function-매개 변 수 를 입력 하고 결 과 를 되 돌려 줍 니 다.방법 은R apply(T t)
  • 입 니 다.
  • Supplier-매개 변수 없 이 들 어 와 결 과 를 되 돌려 줍 니 다.방법 은T get()
  • Unary Operator-일원 연산 자,계승 Function,전 송 된 매개 변수의 유형 과 반환 유형 이 같 습 니 다.
  • Binary Operator-이원 연산 자,들 어 오 는 두 매개 변수의 유형 과 되 돌아 오 는 유형 이 같 고 BiFunction
  • 을 계승 합 니 다.
    여 기 는 일일이 열거 하지 않 겠 습 니 다.구체 적 으로 자바 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 함수 식 프로 그래 밍 에 관 한 더 많은 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 저 를 많이 사랑 해 주세요!

    좋은 웹페이지 즐겨찾기