工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java 8 - ラムダ式

ラムダ式は Java 8 で導入され、Java 8 の最大の機能であると宣伝されています。ラムダ式は関数型プログラミングを容易にし、開発を大幅に簡素化します。

構文

ラムダ式は、次の構文によって特徴付けられます。

parameter -> expression body

以下は、ラムダ式の重要な特徴です。

ラムダ式の例

たとえば、C:\> JAVA.

などで任意のエディターを使用して、次の Java プログラムを作成します。

Java8Tester.java

ライブデモ
public class Java8Tester {

   public static void main(String args[]) {
      Java8Tester tester = new Java8Tester();
		
      //with type declaration
      MathOperation addition = (int a, int b) -> a + b;
		
      //with out type declaration
      MathOperation subtraction = (a, b) -> a - b;
		
      //with return statement along with curly braces
      MathOperation multiplication = (int a, int b) -> { return a * b; };
		
      //without return statement and without curly braces
      MathOperation division = (int a, int b) -> a / b;
		
      System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
      System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction));
      System.out.println("10 x 5 = " + tester.operate(10, 5, multiplication));
      System.out.println("10 / 5 = " + tester.operate(10, 5, division));
		
      //without parenthesis
      GreetingService greetService1 = message ->
      System.out.println("Hello " + message);
		
      //with parenthesis
      GreetingService greetService2 = (message) ->
      System.out.println("Hello " + message);
		
      greetService1.sayMessage("Mahesh");
      greetService2.sayMessage("Suresh");
   }
	
   interface MathOperation {
      int operation(int a, int b);
   }
	
   interface GreetingService {
      void sayMessage(String message);
   }
	
   private int operate(int a, int b, MathOperation mathOperation) {
      return mathOperation.operation(a, b);
   }
}

結果を確認する

javac を使用してクラスをコンパイルします 次のようにコンパイラ-

C:\JAVA>javac Java8Tester.java

次のように Java8Tester を実行します −

C:\JAVA>java Java8Tester

次の出力が生成されるはずです −

10 + 5 = 15
10 - 5 = 5
10 x 5 = 50
10 / 5 = 2
Hello Mahesh
Hello Suresh

以下は、上記の例で考慮すべき重要な点です。

範囲

ラムダ式を使用すると、任意の最終変数または実質的に最終変数 (一度だけ割り当てられる) を参照できます。 2 回目に変数に値が割り当てられると、ラムダ式はコンパイル エラーをスローします。

範囲の例

たとえば、C:\> JAVA.

などで任意のエディターを使用して、次の Java プログラムを作成します。

Java8Tester.java

ライブデモ
public class Java8Tester {

   final static String salutation = "Hello! ";
   
   public static void main(String args[]) {
      GreetingService greetService1 = message -> 
      System.out.println(salutation + message);
      greetService1.sayMessage("Mahesh");
   }
	
   interface GreetingService {
      void sayMessage(String message);
   }
}

結果を確認する

javac を使用してクラスをコンパイルします 次のようにコンパイラ-

C:\JAVA>javac Java8Tester.java

次のように Java8Tester を実行します −

C:\JAVA>java Java8Tester

次の出力が生成されるはずです −

Hello! Mahesh

Java

  1. Java オペレーター
  2. Java 式、ステートメント、およびブロック
  3. Java コメント
  4. Java for-each ループ
  5. Java 文字列
  6. Java インターフェイス
  7. Java匿名クラス
  8. Java try-with-resources
  9. Java アノテーション
  10. Java アサーション
  11. Java ベクトル