자바 Lambda 표현 식 과 함수 식 인터페이스 인 스 턴 스 분석

본 고의 실례 는 자바 람 다 표현 식 과 함수 식 인 터 페 이 스 를 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
눈여겨보다
Lambda 표현 식 의 유형 은'목표 유형'이 라 고도 부 릅 니 다.Lambda 표현 식 의 목표 유형 은 함수 식 인터페이스 여야 합 니 다.함수 식 인 터 페 이 스 는 추상 적 인 방법 만 포함 하 는 인 터 페 이 스 를 대표 한다.함수 식 인 터 페 이 스 는 여러 가지 기본 방법,클래스 방법 을 포함 할 수 있 지만 추상 적 인 방법 만 설명 할 수 있 습 니 다.
익명 내부 클래스 문법 으로 함수 식 인 터 페 이 스 를 만 드 는 인 스 턴 스 를 사용 하면 추상 적 인 방법 만 실현 하면 됩 니 다.이 경우 Lambda 표현 식 으로 대상 을 만 들 수 있 습 니 다.이 표현 식 이 만 든 대상 의 목표 유형 은 바로 이 함수 식 인터페이스 입 니 다.
자바 8 은 함수 식 인터페이스 에@Functional Interface 주 해 를 제공 합 니 다.이 주 해 는 보통 인터페이스 정의 앞 에 놓 여 있 습 니 다.이 주 해 는 프로그램 기능 에 작용 하지 않 습 니 다.컴 파일 러 에 게 더욱 엄격 한 검 사 를 수행 하 라 고 알려 줍 니 다.이 인 터 페 이 스 는 함수 식 인터페이스 여야 합 니 다.그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다.
Lambda 표현 식 은 다음 과 같은 두 가지 제한 이 있 습 니 다.
  • Lambda 표현 식 의 목표 유형 은 명확 한 함수 식 인터페이스 여야 합 니 다.
  • Lambda 표현 식 은 함수 식 인터페이스 에 만 대상 을 만 들 수 있 습 니 다.Lambda 표현 식 은 하나의 방법 만 실현 할 수 있 기 때문에 추상 적 인 방법 만 있 는 인터페이스(함수 식 인터페이스)에 대상 을 만 들 수 있 습 니 다.
  • Lambda 표현 식 의 목표 유형 이 명확 한 함수 식 인터페이스 임 을 확보 하기 위해 다음 과 같은 세 가지 흔 한 방식 이 있 습 니 다.
  • 함수 식 인터페이스 형식의 변수 에 Lambda 표현 식 을 할당 합 니 다.
  • Lambda 표현 식 을 함수 식 인터페이스 형식의 매개 변수 로 어떤 방법 에 전달 합 니 다.
  • 함수 식 인 터 페 이 스 를 사용 하여 Lambda 표현 식 을 강제 형식 으로 변환 합 니 다.
  • 실전
    코드
    
    @FunctionalInterface
    interface FkTest
    {
      void run();
    }
    public class LambdaTest
    {
      public static void main(String[] args)
      {
       // Runnable              
       // Lambda             Runnable      、      
       //      Lambda        Runnable  
       Runnable r = () -> {
         for(int i = 0 ; i < 2 ; i ++)
         {
          System.out.println("Lambda                   ");
         }
       };
       r.run();
    //  //       :       : Object      
    //  Object obj = () -> {
    //    for(int i = 0 ; i < 100 ; i ++)
    //    {
    //     System.out.println();
    //    }
    //  };
       Object obj1 = (Runnable)() -> {
         for(int i = 0 ; i < 2 ; i ++)
         {
          System.out.println(" Lambda            ,                 Runnable     ");
         }
       };
       ((Runnable)obj1).run();
       //    Lambda               ,      :
       // Lambda                             
       Object obj2 = (FkTest)() -> {
         for(int i = 0 ; i < 2 ; i ++)
         {
          System.out.println("Lambda                             ");
         }
       };
       ((FkTest)obj2).run();
      }
    }
    
    
    2 운행
    Lambda 표현 식 의 목표 유형 은 명확 한 함수 식 인터페이스 여야 합 니 다.
    Lambda 표현 식 의 목표 유형 은 명확 한 함수 식 인터페이스 여야 합 니 다.
    Lambda 표현 식 에 강제 형식 변환 을 실 행 했 습 니 다.이 표현 식 의 목표 유형 을 Runnable 함수 식 인터페이스 로 확인 할 수 있 습 니 다.
    Lambda 표현 식 에 강제 형식 변환 을 실 행 했 습 니 다.이 표현 식 의 목표 유형 을 Runnable 함수 식 인터페이스 로 확인 할 수 있 습 니 다.
    Lambda 표현 식 의 형 삼 목록 은 함수 식 인터페이스 에서 유일한 추상 적 인 방법의 형 삼 목록 과 같 습 니 다.
    Lambda 표현 식 의 형 삼 목록 은 함수 식 인터페이스 에서 유일한 추상 적 인 방법의 형 삼 목록 과 같 습 니 다.
    더 많은 자바 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
    본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기