模块 org.redkale
程序包 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;
    
        @ConstructorParameters({"id", "name"})
        public Record(int id, String name) {
            this.id = id;
            this.name = name;
        }
     }
     

    详情见: https://redkale.org

    作者:
    zhangjx
    • 方法详细资料

      • create

        T create​(Object... params)
        创建对象
        参数:
        params - 构造函数的参数
        返回:
        构建的对象
      • paramTypes

        default Class[] paramTypes()
        参数类型数组
        返回:
        参数类型数组
        从以下版本开始:
        2.8.0
      • funcArray

        static <T> IntFunction<T[]> funcArray​(Class<T> type)
        创建指定类型对象数组的IntFunction
        类型参数:
        T - 泛型
        参数:
        type - 类型
        返回:
        IntFunction
      • newArray

        static <T> T[] newArray​(Class<T> type,
                                int size)
        创建指定大小的对象数组
        类型参数:
        T - 泛型
        参数:
        type - 类型
        size - 数组大小
        返回:
        数组
      • create

        static <T> Creator<T> create​(Supplier<T> supplier)
        根据Supplier生产Creator
        类型参数:
        T - 构建类的数据类型
        参数:
        supplier - Supplier
        返回:
        Creator对象
      • create

        static <T> Creator create​(Function<Object[],​T> func)
        根据Function生产Creator
        类型参数:
        T - 构建类的数据类型
        参数:
        func - Function
        返回:
        Creator对象
      • create

        static <T> Creator<T> create​(Class<T> clazz)
        根据指定的class采用ASM技术生产Creator。
        类型参数:
        T - 构建类的数据类型
        参数:
        clazz - 构建类
        返回:
        Creator对象