Class DynaBean

java.lang.Object
org.miaixz.bus.core.beans.DynaBean
All Implemented Interfaces:
Serializable, Cloneable

public class DynaBean extends Object implements Cloneable, Serializable
动态Bean,通过反射对Bean的相关方法做操作 支持Map和普通Bean和Collection
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • DynaBean

      public DynaBean(Object bean)
      构造
      Parameters:
      bean - 原始Bean
  • Method Details

    • of

      public static DynaBean of(Class<?> beanClass, Object... params)
      创建一个DynaBean
      Parameters:
      beanClass - Bean类
      params - 构造Bean所需要的参数
      Returns:
      DynaBean
    • of

      public static DynaBean of(Object bean)
      创建一个DynaBean
      Parameters:
      bean - 普通Bean
      Returns:
      DynaBean
    • get

      public <T> T get(String fieldName) throws BeanException
      获得字段对应值
      Type Parameters:
      T - 属性值类型
      Parameters:
      fieldName - 字段名
      Returns:
      字段值
      Throws:
      BeanException - 反射获取属性值或字段值导致的异常
    • containsProp

      public boolean containsProp(String fieldName)
      检查是否有指定名称的bean属性
      Parameters:
      fieldName - 字段名
      Returns:
      是否有bean属性
    • safeGet

      public <T> T safeGet(String fieldName)
      获得字段对应值,获取异常返回null
      Type Parameters:
      T - 属性值类型
      Parameters:
      fieldName - 字段名
      Returns:
      字段值
    • set

      public DynaBean set(String fieldName, Object value) throws BeanException
      设置字段值
      Parameters:
      fieldName - 字段名
      value - 字段值
      Returns:
      this;
      Throws:
      BeanException - 反射获取属性值或字段值导致的异常
    • invoke

      public Object invoke(String methodName, Object... params)
      执行原始Bean中的方法
      Parameters:
      methodName - 方法名
      params - 参数
      Returns:
      执行结果,可能为null
    • getBean

      public <T> T getBean()
      获得原始Bean
      Type Parameters:
      T - Bean类型
      Returns:
      beans
    • getBeanClass

      public <T> Class<T> getBeanClass()
      获得Bean的类型
      Type Parameters:
      T - Bean类型
      Returns:
      Bean类型
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • clone

      public DynaBean clone()
      Overrides:
      clone in class Object