热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

方法引用_类的构造器(构造方法)引用

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());
}
}

 



推荐阅读
author-avatar
bunnyvivi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有