/**
* 消费型接口
*/
public static void main(String[] args) {
Consumer<Book> consumer = (x) -> System.out.println(x);
Book book = new Book();
book.setName("hlm");
consumer.accept(book);
}
//方法参数
@Test
public void test(){
demo("asd",x-> System.out.println(x));
}
// 创建方法
private void demo(String str,Consumer<String> consumer){
consumer.accept(str);
}
/**
* 供给型接口 Supplier<T>
*/
@Test
public void test2(){
//实现
Supplier<String> supplier = ()-> "供给型接口";
String s = supplier.get();
System.out.println(s);
//方法参数
String s1 = demo1("", () -> String.valueOf(1000));
System.out.println(s1);
}
private String demo1(String str,Supplier<String> consumer){
return consumer.get();
}
/**
* 函数式接口
*/
@Test
public void test3(){
//实现
Function<Integer,Integer> function = x -> x+100;
//输出
Integer apply = function.apply(100);
System.out.println(apply);
//方法参数
System.out.println(demo3("函数式接口",x -> x+100));
}
private String demo3(String str,Function<String,String> function){
return function.apply(str);
}
/**
* 断言型接口 逻辑上的测试约算
*/
@Test
public void test4(){
Predicate<String> predicate = x -> {
if("name".equals(x)){
return true;
}else{
return false;
}
};
System.out.println(predicate.test("name"));
System.out.println(predicate.test("name1"));
//方法参数
demo(100, x->(x > 10 ? true : false));
}
private boolean demo4(String str,Predicate<String> predicate){
return predicate.test(str);
}
未完待续。。。。