java8 Function函数编程详解

编程教程 > Java (1386) 2024-11-26 14:39:04
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


 

评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
java8 Function函数编程详解Function函数基础定义和使用 public static void t1(){ Function&lt;Integer,Int...
java8 Function 应用场景 --代码重构旧代码: import org.springframework.beans.BeanUtils; import java.util.func...
Supplier详解源码分析:package java.util.function; @FunctionalInterface public interface Supplier&lt;T&...
Consumer 源码package java.util.function; import java.util.Objects; @FunctionalInterface public i...
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
Java编程之java static关键字,Java编程,static关键字
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Java EE 8 JSON Pointer讲解,Java EE 8包含JSON处理API的更新,并为最新的JSON标准提供最新的IEFT标准。
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt
Java 8使用多个comparators进行集合分组排序
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
java编程之maven打包Java source jar包
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用 1 主要用spring-boot-starter-amqp来整合R