在java8中已经给我们内置了4个核心的函数式接口:
一、消费型接口
Consumer<T>
void accept(T t)
二、供给型接口
Supplier<T>
T get()
三、函数式接口
Fuction<T,R>
R apply(T t)
四、断言型接口
Predicate<T>
boolean test(T t)
下面给出几个例子:
public class LambdaTest2 {
public void accept(long money, Consumer<Long> consumer){
consumer.accept(money);
}
/**
* 消费
*/
@Test
public void consumer(){
accept(100,(e)-> System.out.println("消费了"+e+"元"));
}
public Integer get(Supplier<Integer> supplier){
return supplier.get();
}
/**
* 供给
*/
@Test
public void supplier(){
int value = get(()-> (int)(Math.random()*100));
System.out.println(value);
}
public String apply(String source, Function<String, String> func){
return func.apply(source);
}
/**
* 函数
*/
@Test
public void function(){
String source = "cch";
String result = apply(source, (k) -> k.toUpperCase());
System.out.println(result);
}
public boolean test(Student student, Predicate<Student> predicate){
return predicate.test(student);
}
/**
* 断言
*/
@Test
public void predicate(){
boolean result = test(new Student("cch", 13, 99), (e) -> e.getAge() > 10);
System.out.println(result);
}
}