Lambda表达式有参数有返回值的练习(自定义接口)和省略格式&Lambda使用前提

Lambda表达式有参数有返回值的练习(自定义接口)

给定一个计算器calculator接口,内含抽象方法calc可以将两个int数字相加得到和值

使用Lambda的标准格式调用invokeCalc方法,完成120和130的相加计算

public interface Calculator {
    //定义一个计算两个int整数和的方法并返回结果
    public abstract int calc(int a,int b);
}
public class CalculatorTest {
    public static void main(String[] args) {
        invoke(120,130,(int a, int b)->{
            return a + b;
        });
    }
    public static void invoke(int a, int b, Calculator c){
        int sum = c.calc(a, b);
        System.out.println(sum);
    }
}

省略格式&Lambda使用前提

lambda表达式: 是可推导,可以省略

根据上下文推导出来的内容,都可以省略书写

可以省略的内容:

  1.(参数列表):括号中的参数列表的数据类型,可以省略不写

  2.(参数列表): 括号中的参数如果只有一个,那么类型和()都可以进行省略

  3.{一些代码}:如果{}中的代码只有一行,无论是否有返回值,都可以省略({},return,分号)

    注意:要省略{},return,分号必须一起省略

Lambda使用前提

lambda的语法非常简洁,完全没有面向对象复杂的束缚。使用时有几个问题需要特别注意:

  1.使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法。

    无论是JDK内置的Runnable、Comparator接口还是自定义的接口,只有当接口中的抽象方法存在且唯一时,

    才可以使用Lambda。

  2.使用Lambda必须具有上下文推断。

    也就是方法的参数或局部变量类型必须为Lambda对应的接口类型,才能使用Lambda作为该接口的实例。

有且仅有一个抽象方法的接口,称为“函数式接口”。

 

优化的:

 

 

 

 

 

 

 

 

 

posted @ 2022-07-11 11:55  魔光领域  阅读(66)  评论(0编辑  收藏  举报