首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java 8-Lambda 表达式

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

句法

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

parameter -> expression body

以下是 lambda 表达式的重要特征。

可选类型声明- 无需声明参数的类型。编译器可以从参数的值推断出相同的值。

参数周围的可选括号- 无需在括号中声明单个参数。对于多个参数,括号是必需的。

可选花括号- 如果主体包含单个语句,则无需在表达式主体中使用花括号。

Optional return keyword - 如果主体有一个表达式来返回值,编译器会自动返回值。需要花括号来指示表达式返回值。

Lambda 表达式示例

使用您选择的任何编辑器在 C:\> JAVA 中创建以下 Java 程序。

Java8Tester.java

现场演示

publicclassJava8Tester{

publicstaticvoidmain(Stringargs[]){

Java8Testertester=newJava8Tester();

//with type declaration

MathOperationaddition=(inta,intb)->a+b;

//with out type declaration

MathOperationsubtraction=(a,b)->a-b;

//with return statement along with curly braces

MathOperationmultiplication=(inta,intb)->{returna*b;};

//without return statement and without curly braces

MathOperationdivision=(inta,intb)->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

GreetingServicegreetService1=message->

System.out.println("Hello "+message);

//with parenthesis

GreetingServicegreetService2=(message)->

System.out.println("Hello "+message);

greetService1.sayMessage("Mahesh");

greetService2.sayMessage("Suresh");

}

interfaceMathOperation{

intoperation(inta,intb);

}

interfaceGreetingService{

voidsayMessage(Stringmessage);

}

privateintoperate(inta,intb,MathOperationmathOperation){

returnmathOperation.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 表达式会引发编译错误。

范围示例

使用您选择的任何编辑器在 C:\> JAVA 中创建以下 Java 程序。

Java8Tester.java

现场演示

验证结果

使用javac编译器编译类如下 -

C:\JAVA>javac Java8Tester.java

现在运行 Java8Tester,如下所示 -

C:\JAVA>java Java8Tester

它应该产生以下输出 -

Hello! Mahesh

轻松轻松,恢复一下活力

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220926A03BRB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券