java8中java.util.function.*pojo反射新方法源码

java8中java.util.function.*pojo反射新方法源码


写一个普通的POJO


image.png
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;

    }

 

}

一、传统的方式


image.png
// 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访问方式


image.png

// Use the City's method references and assign them to functions

Function getNameFunction = City::getName;

Function getCodeFunction = City::getCode;

 

System.out.println("The code for "

 

        + getNameFunction.apply(sf)

        + " is "

        + getCodeFunction.apply(sf));

 

-> The code for San Francisco is SF


三、新的setter访问方式

image.png

// Use the City's method references and assign them to biconsumers

BiConsumer setNameBiConsumer = City::setName;

BiConsumer setCodeBiConsumer = City::setCode;

City ny = new City();

setNameBiConsumer.accept(ny, "New York");

setCodeBiConsumer.accept(ny, "NY");


四、访问 constructor 创建新实例


image.png
// Use the City's constructor method reference to create

// a default constructor reference.

Supplier defaultConstructor = City::new;

 

City sd = defaultConstructor.get();

sd.setName("San Diego");

sd.setCode("SD");


五、带参数的构建器

image.png
// Use the City's constructor method reference to create

// a two-parameter constructor reference.

BiFunction twoParameterConstructor = City::new;

 

City dc = twoParameterConstructor.apply("Washington, D. C.", "DC");

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: