자바 Lambda 표현 식 입문 예시

4334 단어 JavaLambda 표현 식
이 글 의 실례 는 자바 람 다 표현 식 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
눈여겨보다
Lambda 표현 식 은 코드 블록 을 방법 매개 변수 로 지원 합 니 다.Lambda 표현 식 은 추상 적 인 방법 만 있 는 인터페이스(함수 식 인터페이스)의 인 스 턴 스 를 만 들 수 있 습 니 다.
Lambda 표현 식 의 주요 역할 은 익명 내부 클래스 의 번 거 로 운 문법 을 대체 하 는 것 입 니 다.
그것 은 세 부분 으로 구성 되 어 있다.
  • 형 삼 목록.형 삼 목록 은 형 삼 유형 을 생략 할 수 있 습 니 다.만약 형 삼 목록 에 매개 변수 가 하나 밖 에 없다 면,심지어 형 삼 목록 의 괄호 도 생략 할 수 있다.
  • 화살표(->)는 반드시 영문 등호 와 기호 이상으로 구성 되 어야 한다.
  • 코드 블록.코드 블록 에 한 문장 만 포함 되 어 있다 면,Lambda 표현 식 은 코드 블록의 괄호 를 생략 할 수 있 습 니 다.코드 블록의 괄호 를 생략 하면,이 문장 은 괄호 로 문장의 끝 을 표시 하지 마 십시오.Lambda 코드 블록 은 return 구문 만 있 고 return 키 워드 를 생략 할 수 있 습 니 다.Lambda 표현 식 은 값 을 되 돌려 야 합 니 다.코드 블록 에는 return 을 생략 한 문구 만 있 습 니 다.Lambda 표현 식 은 이 문장의 값 을 자동 으로 되 돌려 줍 니 다.
  • 2.익명 내부 클래스 로 명령 모드 구현
    코드
    Command 인터페이스
    
    public interface Command
    {
      //       process()      “    ”
      void process(int[] target);
    }
    
    
    ProcessArray 클래스
    
    public class ProcessArray {
      public ProcessArray() {
      }
      public void process(int[] target, Command cmd) {
        cmd.process(target);
      }
    }
    
    
    CommandTest 클래스
    
    public class CommandTest {
      public CommandTest() {
      }
      public static void main(String[] args) {
        ProcessArray pa = new ProcessArray();
        int[] array = new int[]{3, -4, 6, 4};
        pa.process(array, new Command() {
          public void process(int[] target) {
            int sum = 0;
            int[] var3 = target;
            int var4 = target.length;
            for(int var5 = 0; var5 < var4; ++var5) {
              int tmp = var3[var5];
              sum += tmp;
            }
            System.out.println("        :" + sum);
          }
        });
      }
    }
    
    
    2 운행
    배열 요소 의 합 계 는:9 입 니 다.
    3.Lambda 표현 식 으로 명령 모드 구현
    코드
    
    public class CommandTest2
    {
      public static void main(String[] args)
      {
       ProcessArray pa = new ProcessArray();
       int[] array = {3, -4, 6, 4};
       //     ,              
       pa.process(array , (int[] target)->{
          int sum = 0;
          for (int tmp : target )
          {
            sum += tmp;
          }
          System.out.println("        :" + sum);
         });
      }
    }
    
    
    2 운행
    배열 요소 의 합 계 는:9 입 니 다.
    비교
    Lambda 표현 식 은 익명 의 내부 클래스 와 비교 할 때 new XXX(){}과 같은 번 거 로 운 코드 가 필요 하지 않 습 니 다.재 작성 방법 이름 을 가리 킬 필요 가 없습니다.재 작성 방법의 반환 값 형식 을 제시 할 필요 가 없습니다.재 작성 방법 괄호 와 괄호 안의 인삼 목록 만 제시 하면 됩 니 다.
    Lambda 표현 식 의 코드 블록 은 실현 방법의 방법 체 를 대체 합 니 다.Lambda 표현 식 은 익명 의 방법 과 같 습 니 다.
    5 Lambda 표현 식 의 간소화 문법
    코드
    
    interface Eatable
    {
      void taste();
    }
    interface Flyable
    {
      void fly(String weather);
    }
    interface Addable
    {
      int add(int a , int b);
    }
    public class LambdaQs
    {
      //        Eatable  
      public void eat(Eatable e)
      {
       System.out.println(e);
       e.taste();
      }
      //        Flyable  
      public void drive(Flyable f)
      {
       System.out.println("     :" + f);
       f.fly("【       】");
      }
      //        Addable  
      public void test(Addable add)
      {
       System.out.println("5 3   :" + add.add(5, 3));
      }
      public static void main(String[] args)
      {
       LambdaQs lq = new LambdaQs();
       // Lambda             ,       。
       lq.eat(()-> System.out.println("       !"));
       // Lambda              ,     
       lq.drive(weather ->
       {
         System.out.println("     :" + weather);
         System.out.println("       ");
       });
       // Lambda             ,     
       //           ,           ,     return   。
       lq.test((a , b)->a + b);
      }
    }
    
    
    2 운행
    LambdaQs$$Lambda$1/1078694789@3d075dc0
    사과 맛 이 좋다!
    운전 중:LambdaQs$$Lambda$2/1149319664@7cca494b
    오늘 날 씨 는:[푸 른 하늘 이 씻 은 듯 맑 은 날]
    헬리콥터 가 평온하게 비행 하 다.
    5 와 3 의 합 은 8 이다.
    더 많은 자바 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
    본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기