Lambda表达式有参数有返回值的练习(自定义接口)和Lambda省略格式&Lambda使用前提
- 给定一个计算器Calculator接口,内含抽象方法calc可以将两个int数字相加得到和值
- 使用L ambdo的标准格式调用invokeCalc方法,完成120和130的相加计算
public interface Calculator { // 定义一个计算两个int整数和的方法并返回结果 public abstract int calc(int a, int b); }
public class DemoLambdaMain { public static void main(String[] args) { // 法1 调用invokeCalc方法,方法的参数是一个接口,可以使用匿名内部类 invokeCalc(10, 20, new Calculator() { @Override public int calc(int a, int b) { return a + b; } }); // 法2 使用Lambda表达式,简化匿名内部类 invokeCalc(12, 5, (int a, int b) -> { return a + b; }); } public static void invokeCalc(int a, int b, Calculator c){ int sum = c.calc(a,b); System.out.println(a + "+" + b + "=" + sum); } }
Lambda省略格式
可推导可省略
Lambda强调的是"做什么"而不是怎么做”,所以凡是可以根据上下文推导得知的信息,都可以省略。例如上述案例2还可以使用Lambda的省略写法:
public class DemoLambdaMain { public static void main(String[] args) { invokeCalc(120, 130, (a, b) -> a+b); } public static void invokeCalc(int a, int b, Calculator c){ int sum = c.calc(a,b); System.out.println(a + "+" + b + "=" + sum); } }
省略规则
在Lambda标准格式的基础上,使用省略写法的规则为:
- 小括号内参数的类型可以省略;
- 如果小括号内有且仅有一个参,则小括号可以省略;
- 如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)