前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 8 的 java.util.function.* POJO 的反射新方法

Java 8 的 java.util.function.* POJO 的反射新方法

作者头像
chuchur
发布2022-10-25 14:13:48
2130
发布2022-10-25 14:13:48
举报
文章被收录于专栏:禅境花园禅境花园

上代码,看例子

写一个普通的 POJO

代码语言:javascript
复制
public class City {

    private String name;
    private String code;

    public City() {
    }

    public City(String name, String code) {
        this.name = name;
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

}

传统的方式

代码语言:javascript
复制
// Use a constructor with parameters to create a City
City sf = new City("San Francisco", "SF");
// Use a default constructor with no parameters to create a City
City la = new City();
// Set the members using setters
la.setName("Los Angeles");
la.setCode("LA");

新的 getter 访问方式

代码语言:javascript
复制
// Use the City's method references and assign them to functions
Function<City, String> getNameFunction = City::getName;
Function<City, String> getCodeFunction = City::getCode;

System.out.println("The code for "

        + getNameFunction.apply(sf)
        + " is "
        + getCodeFunction.apply(sf));

-> The code for San Francisco is SF

新的 setter 访问方式

代码语言:javascript
复制
// Use the City's method references and assign them to biconsumers
BiConsumer<City, String> setNameBiConsumer = City::setName;
BiConsumer<City, String> setCodeBiConsumer = City::setCode;
City ny = new City();
setNameBiConsumer.accept(ny, "New York");
setCodeBiConsumer.accept(ny, "NY");

访问 constructor 创建新实例

代码语言:javascript
复制
// Use the City's constructor method reference to create
// a default constructor reference.
Supplier<City> defaultConstructor = City::new;

City sd = defaultConstructor.get();
sd.setName("San Diego");
sd.setCode("SD");

带参数的构建器

代码语言:javascript
复制
// Use the City's constructor method reference to create
// a two-parameter constructor reference.
BiFunction<String, String, City> twoParameterConstructor = City::new;

City dc = twoParameterConstructor.apply("Washington, D. C.", "DC");
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写一个普通的 POJO
  • 传统的方式
  • 新的 getter 访问方式
  • 新的 setter 访问方式
  • 访问 constructor 创建新实例
  • 带参数的构建器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档