Class ObjectKit


public class ObjectKit extends ObjectValidator
对象工具类,包括判空、克隆、序列化等操作 原数组相关操作见:ArrayValidator.hasBlank(CharSequence...)ArrayValidator.isAllBlank(CharSequence...)等等
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • ObjectKit

      public ObjectKit()
  • Method Details

    • length

      public static int length(Object obj)
      计算对象长度,支持类型包括:
      Parameters:
      obj - 被计算长度的对象
      Returns:
      长度
    • contains

      public static boolean contains(Object obj, Object element)
      检查obj中是否包含element,若objnull,则直接返回false。 支持类型包括:
      Parameters:
      obj - 对象
      element - 元素
      Returns:
      是否包含
    • apply

      public static <T, R> R apply(T source, Function<T,R> handler)
      如果指定的对象不为 null,则应用提供的映射函数并返回结果,否则返回 null
      Type Parameters:
      T - 输入对象的类型
      R - 映射函数的返回类型
      Parameters:
      source - 要检查的对象
      handler - 要应用的映射函数
      Returns:
      映射函数的结果, 如果输入对象为 null,则返回 null
    • accept

      public static <T> void accept(T source, Consumer<T> consumer)
      如果指定的对象不为 null,则执行Consumer处理source,否则不进行操作
      Type Parameters:
      T - 输入对象的类型
      Parameters:
      source - 要检查的对象
      consumer - source处理逻辑
    • clone

      public static <T> T clone(T obj)
      克隆对象
      1. 如果对象是数组,则等同于ArrayKit.clone(Object)
      2. 如果对象实现了Cloneable接口,调用 Object.clone()方法;
      3. 如果对象实现了Serializable接口,执行深度克隆;
      4. 不符合上述任意情况则返回null
      Type Parameters:
      T - 对象类型
      Parameters:
      obj - 被克隆对象
      Returns:
      克隆后的对象
      See Also:
    • cloneIfPossible

      public static <T> T cloneIfPossible(T obj)
      返回克隆后的对象,如果克隆失败,返回原对象
      Type Parameters:
      T - 对象类型
      Parameters:
      obj - 对象
      Returns:
      克隆对象或原对象
      See Also:
    • cloneByStream

      public static <T> T cloneByStream(T obj)
      序列化后拷贝流的方式克隆 若对象未实现Serializable接口,则返回null
      Type Parameters:
      T - 对象类型
      Parameters:
      obj - 被克隆对象
      Returns:
      克隆后的对象
      Throws:
      InternalException - IO异常和ClassNotFoundException封装
      See Also:
    • getTypeArgument

      public static Class<?> getTypeArgument(Object obj)
      获得给定类的第一个泛型参数
      Parameters:
      obj - 被检查的实体对象
      Returns:
      Class
    • getTypeArgument

      public static Class<?> getTypeArgument(Object obj, int index)
      获得给定类指定下标的泛型参数
      Parameters:
      obj - 被检查的实体对象
      index - 泛型类型的索引号,即第几个泛型类型
      Returns:
      Class
      See Also:
    • nullSafeEquals

      public static boolean nullSafeEquals(Object o1, Object o2)
      确定给定的对象是否相等,如果两个对象都是null, 则返回true;如果只有一个对象是null, 则返回false
      Parameters:
      o1 - 第一个比较对象
      o2 - 第二个比较对象
      Returns:
      给定对象是否相等
      See Also: