Lambda表达式
使用前提:
必须是接口,接口中只能有一个抽象方法。
格式:
(数据类型1 参数名,数据类型2 参数名2…)->{方法体}
():代表的是要执行接口中对应的抽象方法。方法中有参数就需要传递参数。
->:固定格式,作用是将小括号中的参数传递给后面的大括号方法体中。
{}:代表的是实现接口中抽象方法的方法体。
public interface Animal { abstract void eat(); } //测试类 public class Test { public static void userAnimal(Animal a) { a.eat(); } public static void main(String[] args) { //通过匿名类实现 // userAnimal(new Animal() { // @Override // public void eat() { // System.out.println("吃肉"); // } // }); userAnimal( //eat()无参 ()->{System.out.println("狗吃肉");} ); } }
函数式接口
lambda省略规则:
1.方法中只有一个参数时,数据类型和小括号都可以省略。
2.方法中有多个参数,数据类型可以省略。
3.大括号中只有一行代码,大括号、return、分号可以一起省略。
//接口 public interface Animal { public abstract int geSum(int num1,int num2); } //测试类 public class Test { public static void main(String[] args) { method(10, 20,(int num1,int num2)->{return num1+num2;}); } public static void method(int num1,int num2,Animal a) { int result = a.geSum(num1, num2); System.out.println(result); } }