zoukankan      html  css  js  c++  java
  • Java 建造者Builder

    import java.util.ArrayList;
    import java.util.List;
    import java.util.function.Consumer;
    import java.util.function.Supplier;
    
    public class Builder<T> {
    
        private final Supplier<T> instantiator;
    
        private List<Consumer<T>> modifiers = new ArrayList<>();
    
        public Builder(Supplier<T> instantiator) {
            this.instantiator = instantiator;
        }
    
        public static <T> Builder<T> of(Supplier<T> instantiator){
            return new Builder<>(instantiator);
        }
    
        public <P1> Builder<T> with(Consumer1<T,P1> consumer1,P1 p1){
            Consumer<T> c = instance -> consumer1.accept(instance,p1);
            modifiers.add(c);
            return this;
        }
    
        public interface Consumer1<T,P1> {
            void accept(T t,P1 p1);
        }
    
        public static void main(String[] args) {
    
            Builder.of(TestVo::new).with(TestVo::setId,"id值");
            Builder.of(TestVo::new).with((t,p1) -> t.setId(p1),"id值");
    
        }
    
    }

    多余的就不说了,我相信代码Debug以下都能看懂

    jdk8新特性

    复制请注明出处,在世界中挣扎的灰太狼
  • 相关阅读:
    Python--day72--ajax简介
    Python基础1 介绍、基本语法
    10-Python-字符编码
    09-Python-集合
    07-Python-字符串操作
    99-Python-深浅拷贝
    06-Python-字典
    05-Python-判断语句
    04-Python-元组
    03-Python-操作列表
  • 原文地址:https://www.cnblogs.com/XingXiaoMeng/p/13927915.html
Copyright © 2011-2022 走看看