java8创建对象

/**

  • 通用的 Builder 模式构建器
  • @author: CipherCui
  • @since 2019/8/29在这里插入代码片
    /
    public class Builder {
    private final Supplier instantiator;
    private List<Consumer> modifiers = new ArrayList<>();
    public Builder(Supplier instantiator) {
    this.instantiator = instantiator;
    }
    public static Builder of(Supplier instantiator) {
    return new Builder<>(instantiator);
    }
    public Builder with(Consumer1<T, P1> consumer, P1 p1) {
    Consumer c = instance -> consumer.accept(instance, p1);
    modifiers.add©;
    return this;
    }
    public <P1, P2> Builder with(Consumer2<T, P1, P2> consumer, P1 p1, P2 p2) {
    Consumer c = instance -> consumer.accept(instance, p1, p2);
    modifiers.add©;
    return this;
    }
    public <P1, P2, P3> Builder with(Consumer3<T, P1, P2, P3> consumer, P1 p1, P2 p2, P3 p3) {
    Consumer c = instance -> consumer.accept(instance, p1, p2, p3);
    modifiers.add©;
    return this;
    }
    public T build() {
    T value = instantiator.get();
    modifiers.forEach(modifier -> modifier.accept(value));
    modifiers.clear();
    return value;
    }
    /
    *
    • 1 参数 Consumer
      /
      @FunctionalInterface
      public interface Consumer1<T, P1> {
      void accept(T t, P1 p1);
      }
      /
      *
    • 2 参数 Consumer
      /
      @FunctionalInterface
      public interface Consumer2<T, P1, P2> {
      void accept(T t, P1 p1, P2 p2);
      }
      /
      *
    • 3 参数 Consumer
      */
      @FunctionalInterface
      public interface Consumer3<T, P1, P2, P3> {
      void accept(T t, P1 p1, P2 p2, P3 p3);
      }
      }

文章转载自: http://www.ciphermagic.cn/java8-builder.html
java8创建对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值