lambda表达式,前面是参数,后面是方法实现。可以理解成接口的实现类,但是此接口只能有一个方法。
附上一个面试题例子:
import java.util.ArrayList;
import java.util.List;
public class IC {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
for(int a=0;a<4;a++) {
list.add(new IB(a>1).getFlag((b) -> b & true));
}
System.out.println(list);
}
}
interface IA{
boolean test(boolean var1);
}
class IB{
private boolean flag;
public IB(boolean flag) {
this.flag=flag;
}
public String getFlag(IA ia) {
if(ia.test(this.flag)) {
return Boolean.TRUE.toString();
}else {
return Boolean.FALSE.toString();
}
}
}
其中(b) -> b & true段可以看成接口IA test方法的实现。但此接口有其他方法此段程序报错。
本文探讨了Java中lambda表达式的基本概念,将其比喻为接口的实现类,并通过具体示例展示如何使用lambda表达式来实现接口的方法。特别强调了lambda表达式所对应的接口必须是一个函数式接口,即该接口只能包含一个抽象方法。





