org.redkale.util

## 接口 Creator<T>

- 类型参数:
    `T` - 构建对象的数据类型

      public interface Creator<T>

  实现一个类的构造方法。 代替低效的反射实现方式。 不支持数组类。 常见的无参数的构造函数类都可以自动生成Creator， 对应自定义的类可以提供一个静态构建Creator方法。 例如:

  >      public class Record {

  >         private final int id;

  >         private String name;

  >         Record(int id, String name) {
  >             this.id = id;
  >             this.name = name;
  >         }

  >         private static Creator createCreator() {
  >             return new Creator<Record>() {
  >                 @Override
  >                 @ConstructorParameters({"id", "name"})
  >                 public Record create(Object... params) {
  >                     if(params[0] == null) params[0] = 0;
  >                     return new Record((Integer) params[0], (String) params[1]);
  >                 }
  >              };
  >         }
  >      }

  或者:

  >      public class Record {

  >         private final int id;

  >         private String name;

  >         @java.beans.ConstructorProperties({"id", "name"})
  >         public Record(int id, String name) {
  >             this.id = id;
  >             this.name = name;
  >         }
  >      }

  详情见: https://redkale.org

- - ### 嵌套类概要

    嵌套类
    限定符和类型 | 接口和说明
    --- | ---
    `static interface` | `Creator.ConstructorParameters` 该注解只用于Creator.create方法上， 与 java.beans.ConstructorProperties 类似。

  - ### 方法概要

    所有方法 静态方法 实例方法 抽象方法 默认方法
    限定符和类型 | 方法和说明
    --- | ---
    `static <T> Creator<T>` | `create(java.lang.Class<T> clazz)` 根据指定的class采用ASM技术生产Creator。
    `T` | `create(java.lang.Object... params)` 创建对象

- - ### 方法详细资料

    - #### create

          T create(java.lang.Object... params)

      创建对象
      参数:
        `params` - 构造函数的参数
      返回:
        构建的对象

    - #### create

          static <T> Creator<T> create(java.lang.Class<T> clazz)

      根据指定的class采用ASM技术生产Creator。
      类型参数:
        `T` - 构建类的数据类型
      参数:
        `clazz` - 构建类
      返回:
        Creator对象