Java8 - Lambda表达式

Java8 - Lambda表达式 首页 / Java入门教程 / Java8 - Lambda表达式

Lambda表达式是在Java8中引入的,被吹捧为Java 8最大的特性。Lambda表达式简化了函数式编程,并大大简化了开发。

lambda表达式的特征在于以下语法。

parameter -> expression body

Lambda表达式

使用您选择的任何编辑器(例如,C:\> JAVA)创建以下Java程序。

Java8Tester.java

public class Java8Tester {

   public static void main(String args[]) {
      Java8Tester tester=new Java8Tester();
		
      //类型声明
      MathOperation addition=(int a, int b) -> a + b;
		
      //自动推断声明
      MathOperation subtraction=(a, b) -> a - b;
		
      //返回声明以及{}花括号
      MathOperation multiplication=(int a, int b) -> { return a * b; };
		
      //没有返回声明,没有{}花括号
      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

下面是在上面的例子中需要考虑的要点。

  • Lambda 表达式主要用于定义函数接口的内联实现,即仅具有单个方法的接口。在上面的示例中,无涯教程使用了各种类型的lambda表达式来定义MathOperation接口的操作方法,然后定义了GreetingService的sayMessage的实现。

  • Lambda表达式消除了匿名类,为Java提供了非常简单但函数强大的函数式编程能力。

Lambda作用域

使用lambda表达式,您可以引用任何final变量,如果第二次为变量赋值,Lambda表达式将引发编译错误。

使用您选择的任何编辑器创建以下Java程序,例如, C:\> 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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

数据结构与算法之美 -〔王争〕

爆款文案修炼手册 -〔乐剑峰〕

React Hooks 核心原理与实战 -〔王沛〕

HarmonyOS快速入门与实战 -〔QCon+案例研习社〕

大数据经典论文解读 -〔徐文浩〕

编程高手必学的内存知识 -〔海纳〕

中间件核心技术与实战 -〔丁威〕

Serverless进阶实战课 -〔静远〕

AI大模型企业应用实战 -〔蔡超〕

好记忆不如烂笔头。留下您的足迹吧 :)