java8 Lamba表达式

首先弄清函数式接口与Lamba表达式关系?(红色部分概念自行google)

       只有有了函数式接口才可以写lamba表达式。

一、java内置的四种函数式接口

1. Predicate < T >接口是只有一个参数的返回布尔类型值的 断言型 接口

     boolean test(T t);

2.Function <R , T >接口

         R apply(T t)

3.Supplier <t>供给型接口

        T get();

4.Consumer < T>消费型接口

       void accpet(T t)

通过api提供的这四种函数式接口就可以写各种Lamba表达式了。

Consumer实现例子

public class TestLamba{
    public void test(){
        happen(1000, (m) -> System.out.printLn("一共消费" + m + "元"));
    }
    public void happen(double money, Consumer<Double> con{
        con.accpet(money);
    }
}

上面  (m) -> System.out.printLn("一共消费" + m + "元")) 相当于具体实现accept函数(按此方式理解, 只不过实现方式十分自由)

Supplier 实现例子

    

理解他们关系后可学习:https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/What's%20New%20in%20JDK8/Java8Tutorial.md#predicates

猜你喜欢

转载自blog.csdn.net/ycllycll/article/details/91354075
今日推荐