首页> 文章> 详情

java8 Function函数编程详解

教程分享 > Java教程 (1118) 2024-04-17 12:33:20
java8 Function函数编程详解

Function函数基础定义和使用

    public static void t1(){
        Function<Integer,Integer> calSum= x -> x+2;
        Integer apply = calSum.apply(2);
        System.out.println(apply);
    }
执行结果:
4

多个Function的执行

    public static void t2(){
        Function<Integer,Integer> calFn1= x -> x+2;
        Function<Integer,Integer> calFn2= x -> x*10;
        //先算calFn2 在执行calF1
        Integer apply = calFn1.compose(calFn2).apply(4);
        System.out.println(apply);

        //先算calFn1 在执行calF2
        Integer apply1 = calFn1.andThen(calFn2).apply(4);
        System.out.println(apply1);
    }
执行结果:
42
60

Function对象操作

对象

import lombok.Data;

/**
 * 汽车
 */
@Data
public class Car {

   private String name;
   private String company;
   private Integer status;
    /**
     * 设置名称并返回当前对象
     * @param name
     * @return
     */
    public Car setName(String name){
        this.name=name;
        return this;
    }

    /**
     * 设置公司并返回当前类
     * @param company
     * @return
     */
    public Car setCompany(String company){
        this.company=company;
        return this;
    }

    @Override
    public String toString() {
        return "name:"+name+" company:"+company;
    }
}
对象处理函数
    public static void  t3(){
        Function<Car,Car> setNameFn=car->{
            car.setName("长城");
            return car;
        };
        Function<Car,Car> setSecondNameFn=car->{
            car.setName(car.getName()+"H6");
            return car;
        };

        Car apply = setNameFn.andThen(setSecondNameFn).apply(new Car());
        System.out.println(apply);
    }

执行结果:
name:长城H6 company:null


 
https://www.leftso.com/article/1017.html

相关文章

java8 Function函数编程详解Function函数基础定义和使用 public static void t1(){ Function&lt;Integer,Int...
java8 Function 应用场景 --代码重构旧代码: import org.springframework.beans.BeanUtils; import java.util.func...
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编程软件下载、安装和使用说明
是什么Predicatejava8,java.util.function中 Function, Supplier, Consumer, Predicate和其他函数式接口广泛用在支持lambda...
Java EE 8 JSON Pointer讲解,Java EE 8包含JSON处理API的更新,并为最新的JSON标准提供最新的IEFT标准。
java编程中通过easypoi导出excel文件并处理导出数据
Java编程中Parameterized Test-Junit的使用构造函数通过注解@Parameter注入
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt
Java泛型变量协变与逆变“更复杂的类型”在这里指的是更高级别的结构,如容器和功能。 因此,协变是关于容器和函数之间的赋值兼容性
java编程中采用Apache common.httpclient方式模拟POST请求
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端