ラムダ式(JDK8)

ラムダ式と言って前に、最初の関数インタフェースを教えて

機能インタフェース

唯一、我々は、このインタフェースの機能としてインタフェースに注釈@Functionallnterface、強い制約を使用することができ、抽象メソッドのインターフェースを定義しています。Runnableを、呼び出し可能、コンパレータインターフェイスとして。

Javaインタフェースは、4つの組み込み関数:消費者<T>を、サプライヤー< T>、機能<T、R>、述語<T>。
ラムダ式は、これらの機能のインタフェースの発現を達成するために設計されています。

@FunctionalInterface
 パブリック インターフェイスのRunnable {
     パブリック 抽象 ボイドラン(); 
}

Runnbaleスレッドにたとえば、

Runnableを実行可能= 新しいRunnableを()
{ 
      @Override 
       公共 のボイドの実行()
       { 
          System.out.printlnは( "こんにちはラムダ!"); 
       } 
}。
新しいスレッド(実行可能).start();

ラムダ式に変更することができます。

実行可能な実行可能=() - > {   
    システム。アウト .println(" ハローラムダ!" ); 
}。
新しいスレッド(実行可能).start();

前記パラメータのリスト:インタフェースの要件に合致メソッドのパラメータリスト。

ラムダ機能の概要

  • パラメータ型リストが無視され、直接書き込むことはできません。(注パラメータタイプこと、パラメータが理由ではないコンテキストデータ型推論ためJVMコンパイラ
  • 唯一つのパラメータ場合は、括弧を省略することができ
  • 唯一のメソッド本体文がある場合は、中括弧をオフに省略することができます
  • そこに一つだけの文であり、彼はreturn文であれば、あなたが直接、省略することができますreturnキーワード

構文:パラメータなし戻り値なしタイプ

公共 のボイドテスト(){ 
    RunnableをRunnableを = 新しい新しいRunnableを(){ 
        @Override 
        公共 無効RUN(){ 
        システム。OUTの .println("ラムダこんにちは!" );         
        } 
    }; 
    ; Runnable.run()
} 
/ * * 
 (* ) - >のSystem.out.println(「ラムダこんにちは!」); 
 * / 公共 ボイドテスト(){
 // 「 - >」はパラメータがないことを示す、わずかな括弧を左、右は、匿名性を達成するために(同等のラムダ体であります内部クラスのメソッドは、利用可能なインタフェースの、すなわち、カテゴリ)内部 
のRunnable Runnableを=() - 。>システムOUTの .println(「ラムダこんにちは!);    
runnable.run(); 
}

構文II:パラメータと戻り値の型なし

/ * * 
*(X) - >のSystem.out.println(X)
* / 
公共 ボイド試験(){
  // メソッドパラメータe表し実装するインターフェース 
  消費者の<string>消費者=(E ) - > システム。OUT .println(" こんにちは" + E); 
  consumer.accept(" ラムダ" ); 
} 
/ * * 
* X -のSystem.out.println(X)> 
*パラメータが"()"を省略できる場合
* / 公共 ボイド試験(){   // メソッドパラメータe表し実装するインターフェース   消費者の<string>コンシューマ= E->システム。OUT .println("こんにちは" + E)。   consumer.accept(" Lamdba " ); }

シンタックス3:2つの以上のパラメータや戻り値、および身体複数の文ラムダ

公共 のボイドTEST4(){
  // ラムダ本体、使用する文の複数のブレース 
  コンパレータ<整数> COM =(X、Y) - > { 
    システム。OUTの .println(" 機能インタフェース" );
    リターンInteger.compare(X、Y); 
  }; 
  int型の比較= com.compare(100244 
  。システムOUTの.println(比較); 
}

 

おすすめ

転載: www.cnblogs.com/niudaben/p/11941880.html