JKD8的新特性——lambda的使用条件:函数式接口

Lambda表达式的本质是作为函数式接口的实现。
如果一个接口中只有一个抽象方法,那么此接口就被称为:函数式接口。
所以匿名实现类都可以用Lambda表达式来写。
java四大核心函数式接口
image.png
1. 消费型接口Consumer例子

12345678910111213141516171819
public class LambdaTest2 { @Test public void test(){ //传统写法 happyTime(200d, new Consumer<Double>() { @Override public void accept(Double aDouble) { System.out.println("学习使我快乐!"+aDouble); } }); System.out.println("------------------------------------------------"); //lambda表达式写法 happyTime(300d,money-> System.out.println("学习使我快乐"+money)); } public void happyTime(double money, Consumer<Double> consumer){ consumer.accept(money); } }

2、断定型接口Predicate例子

12345678910111213141516
@Test public void test2(){ List<String> list= Arrays.asList("北京","南京","天津","东京","普京"); list=filter(list, s -> s.contains("京")); System.out.println(list); } //根据给定的规则过滤指定的集合 public List<String> filter(List<String>list, Predicate<String> predicate){ ArrayList<String> filterStringList=new ArrayList<>(); for (String s:list){ if (predicate.test(s)){ filterStringList.add(s); } } return filterStringList; }
JKD8的新特性——方法引用
WIN10下Java环境变量配置
评论
zhangrenxian123小白菜
文章28
分类5
标签2