作者:bunnyvivi | 来源:互联网 | 2023-10-13 13:47
publicclassPerson{privateStringname;publicPerson(){}publicPerson(Stringname){this.namename
public class Person {
private String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
}
/*
定义一个创建Person对象的函数式接口
*/
@FunctionalInterface
public interface PersonBuilder {
//定义一个方法,根据传递的姓名,创建Person对象返回
Person builderPerson(String name);
}
/*
类的构造器(构造方法)引用
*/
public class Demo {
public static void main(String[] args) {
//调用printName方法,方法的参数PersonBuilder接口是一个函数式接口,可以传递Lambda
prinName("赵丽颖",s->new Person(s));
/*使用方法引用优化Lambda表达式
构造方法new Persib(String name)已知
创建对象已知 new
即可以只用Persib引用的new创建对象
*/
prinName("云同桌",Person::new);
}
//定义一个方法,参数传递姓名和PersonbBuilder接口,方法中通过姓名创建person对象
private static void prinName(String name, PersonBuilder personBuilder) {
Person person = personBuilder.builderPerson(name);
System.out.println(person.getName());
}
}