package com.imooc.controller;
import org.junit.Test;
import java.util.Comparator;
import java.util.function.BiPredicate;
import java.util.function.Consumer;
import java.util.function.Supplier;
/**
* @author jiangli
* @date 2018/10/28 22:36
* 方法引用:若Lambda体中的内容有方法已经实现了,我们可以使用'方法引用'
* (可以理解为方法引用是Lambda的另一种形式)
*/
public class TestMethodRef {
//类::实例方法名
@Test
public void test3() {
BiPredicate<String,String> bi=(x, y)->x.equals(y);
//当满足第一个参数是实例方法的调用者 第二个参数是实例方法的参数时
BiPredicate<String,String> bp=String::equals;
System.out.println(bp.test("a","a"));
}
//类::静态方法名
@Test
public void test2() {
Comparator<Integer> com = Integer::compare;
System.out.println(com.compare(2, 2));
}
//对象::实例方法名
@Test
public void test() {
Consumer<String> con = s -> System.out.println(s);
con.accept("hello");
con = System.out::println;
con.accept("lamdabd");
}
@Test
public void test1() {
Book book=new Book("三国演义","罗贯中",10.00);
Supplier<String> sup= ()->book.getName();
System.out.println(book.getName());
sup=book::getWriter;
System.out.println(sup.get());
}
}