public class Test {
public static void main(String[] args){
//使用lambda表达式实现接口
Test test = () -> {
System.out.println("test");
};
test.test();
}
}
interface Test{
public void test();
}
这是一个很简单的lambda的代码,基础语法
(参数)->{
方法体
};
lambda表达式可以在⼀定程度上简化接口的实现。但是,并不是所有的接口都可以使用lambda表达式来简洁实现的。lambda表达式毕竟只是⼀个匿名方法。当实现的接口中的方法过多或者多少的时候,lambda表达式都是不适用的。lambda表达式,只能实现函数式接口。
函数式接口就是一个接口中有且只有一个必须实现的抽象方法。例如
interface Test{
public void Test1();
}
//函数式接口
public class Test {
public static void main(String[] args) {
Animal A = () -> {
System.out.println("Test");
};
Animal1 B = (age,name) -> {
System.out.println(name+age+"岁");
};B.B(3,"狗");
Animal2 C= (age) -> {
System.out.println(age+"岁");
return age+1;
};int age = C.C(4);
System.out.println(age);
}}
public interface Animal {
//无参
public void A();
}
public interface Animal1 {
//有参
public void B(int age,String name);
}
public interface Animal2 {
//有返回值
public int C(int age);
}
有且只有一个参数可以省略()。
Animal2 C= age-> {
System.out.println(age+"岁");
return age+1;
};int age = C.C(4);
System.out.println(age);
方法体里只有一句话可以省略{}。
Animal1 B = (age,name)->
System.out.println(name+age+"岁");
B.B(3,"狗");