import org.junit.Test;
import java.io.PrintStream;
import java.util.function.Consumer;
import java.util.function.Supplier;
public class TestMethodRef {
//对象 ::非静态方法
//Consumer 中的void accept(T t)
//PrintStream 中的void println(T t)
@Test
public void test01(){
Consumer con1 = s -> System.out.println(s);
con1.accept("hello");
System.out.println("***************");
PrintStream ps = System.out;
Consumer con2 = ps::println;
con2.accept("ii");
}
//对象 ::非静态方法
//Supplier 中的T get()
//Employee 中的T getName(T t)
@Test
public void test02(){
Employee e = new Employee(2,"we");
Supplier su = () -> e.getName();
System.out.println(su.get());
System.out.println("************");
Supplier su1 = e::getName;
System.out.println(su1.get());
}
class Employee{
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Employy{" +
"age=" + age +
", name='" + name + ''' +
'}';
}
public Employee(int age, String name) {
this.age = age;
this.name = name;
}
}
}