Common 常用模块

Date 日期处理

Reflection 反射

Input/Output 输入/输出

HTTP 请求

加密/解密

NewInstance

NewInstance<T> 通过 public 构造器创建对象。接口不能实例化。

String value = new NewInstance<>(String.class).newInstance();

StringBuilder builder =
        new NewInstance<>(StringBuilder.class, "text").newInstance();

传入参数时,当前实现按照参数的精确运行时类型选择构造器。因此,子类型参数不能匹配接收父类或接口的 public 构造器;包含 null 的参数也需要调用方显式取得 Constructor

类参数必须非 null 且可实例化。接口会被明确拒绝;抽象类在实际调用构造器时失败。

构造器辅助方法

getConstructor(Class<T>, Class<?>...) 返回参数类型精确匹配的 public 构造器;找不到时抛出 RuntimeExceptionnewInstance(Constructor<T>, Object...) 调用已经选定的构造器,并将原始异常 保留为 cause。

Constructor<String> constructor =
        NewInstance.getConstructor(String.class, String.class);
String value = NewInstance.newInstance(constructor, "text");

hasArgsCon(Class<?>) 判断类是否公开了至少一个有参数的 public 构造器。

非 public 构造器不在该工具的支持范围内。传入 nullConstructor 没有明确校验,当前会产生 NullPointerException