java8 Function 应用场景

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(890)   2023-03-28 11:29:14
java8 Function 应用场景 --代码重构

旧代码:

import org.springframework.beans.BeanUtils;

import java.util.function.Function;

public class J8FunctionDemo1Test {

    public static void main(String[] args) {
        CarVO byCompany = getCarByCompany("长城");
        CarVO carByName = getCarByName("长安CS75");
    }
    /**
     * 旧代码
     */
    public static CarVO creteByName(String name){
        Car car= new Car().setName(name).setCompany("长安");
        CarVO vo=new CarVO();
        BeanUtils.copyProperties(car,vo);
        vo.setAddress("重庆");
        vo.setStatus(0);
        return vo;
    }
    /**
     * 旧代码
     */
    public static CarVO createByCompany(String company){
        Car car=  new Car().setName("长城H6").setCompany(company);
        car.setStatus(0);
        CarVO vo=new CarVO();
        BeanUtils.copyProperties(car,vo);
        vo.setAddress("北京");
        vo.setStatus(0);
        return vo;
    }
}

使用Function 函数重构代码:
import org.springframework.beans.BeanUtils;

import java.util.function.Function;

public class J8FunctionDemo1Test {

    public static void main(String[] args) {
        Car byCompany = getCarByCompanyFn("长城");
        Car carByName = getCarByNameFn("长安CS75");
    }

    /**
     * 新function代码
     */
    public static CarVO createByFunction(String param,Function<String,CarVO> function){
        Car car= function.apply(param);
        CarVO vo=new CarVO();
        BeanUtils.copyProperties(car,vo);
        vo.setAddress("北京");
        vo.setStatus(0);
        return vo;
    }
    /**
     * 新function代码
     */
    public static CarVO getCarByNameFn(String name){
        return createByFunction(name,arg->creteByName(name));
    }
    /**
     * 新function代码
     */
    public static CarVO getCarByCompanyFn(String company){
        return createByFunction(company,arg->createByCompany(company));
    }

}

可以看到使用function代码更简约

 
地址:https://www.leftso.com/article/1018.html

相关阅读

java8 Function 应用场景 --代码重构旧代码: import org.springframework.beans.BeanUtils; import java.util.func...
java8 Function函数编程详解Function函数基础定义和使用 public static void t1(){ Function&lt;Integer,Int...
Consumer 源码package java.util.function; import java.util.Objects; @FunctionalInterface public i...
Supplier详解源码分析:package java.util.function; @FunctionalInterface public interface Supplier&lt;T&...
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
Java 数据库连接 (JDBC)是标准应用程序编程接口 (API) 的 JavaSoft 规范,它允许 Java 程序访问数据库管理系统
是什么Predicatejava8,java.util.function中 Function, Supplier, Consumer, Predicate和其他函数式接口广泛用在支持lambda...
Java EE 8 JSON Pointer讲解,Java EE 8包含JSON处理API的更新,并为最新的JSON标准提供最新的IEFT标准。
Java编程中纯jdk java方式编写webservice服务(server)和客服端(client)