Lambda表达式用于实现只包含一个方法的接口即函数式接口,可以使其方法的实现过程更简洁,但随之也使表现形式更加抽象。
接口中的方法的参数列表和返回值共有6种形式,分别为无参无返回值、无参有返回值,有参无返回值(一个参数),有参无返回值(多个参数),有参有返回值(一个参数)、有参有返回值(多个参数)、
接下来用例子来实现一下:
为了方便我将五个方法都写在了一个接口中,读者请注意实际编写的时候里面是只能有一个方法的
@FunctionalInterface //该注解用于检查接口是否为函数式接口
interface La{
// 1. 无参无返回值
void af();
// 2. 无参,带返回值
int af();
// 3. 带参 不带返回值(一个参数)
void af(int n);
// 4. 带参 不带返回值(多个参数)
void af(int n1,int n2);
// 5. 带参 带返回值(一个参数)
int af(int n);
// 6. 带参 带返回值(多个参数)
int af(int m,int n);
}
public class TestLambda1 {
// Lambda
// 1.无参,无返回值
La la = ()->{System.out.println("hello");};
La la1 = ()->System.out.println("hello");// 只有一行代码,可以省略大括号
// 2.无参,带返回值
La la2 = ()->{return 11;};
La la3 = ()->11;// 方法实现只有一行代码是return语句,那么可以省略return;
// 3. 带参 不带返回值(一个参数)
La la4 = (num)->{System.out.println(num);};
La la5 = num -> System.out.println(num);// 只有一个参数可以省略小括号
// 4.带参 不带返回值(多个参数)
La la6 = (n1,num2)->{System.out.println(n1 + num2);};
// 5.带参带返回值(一个参数)
La la7 = num ->{return num;};
La la8 = num -> num;
// 6.带参带返回值(多个参数)
La la0 = (m,n) ->{return m+n;}
public static void main(String[] args) {
TestLambda1 test = new TestLambda1();
test.la.af();//用本类对象调用la对象的方法
}
}
}*/