Class PropDesc

java.lang.Object
org.miaixz.bus.core.beans.desc.PropDesc

public class PropDesc extends Object
属性描述,包括了字段、getter、setter和相应的方法执行
Since:
Java 17+
Author:
Kimi Liu
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Method
    Getter方法
    protected Method
    Setter方法
  • Constructor Summary

    Constructors
    Constructor
    Description
    PropDesc(Field field, Method getter, Method setter)
    构造 Getter和Setter方法设置为默认可访问
    PropDesc(String fieldName, Method getter, Method setter)
    构造 Getter和Setter方法设置为默认可访问
  • Method Summary

    Modifier and Type
    Method
    Description
    获取字段
    获得字段类型 先获取字段的类型,如果字段不存在,则获取Getter方法的返回类型,否则获取Setter的第一个参数类型
    获取字段名,如果存在Alias注解,读取注解的值作为名称
    获得字段类型 先获取字段的类型,如果字段不存在,则获取Getter方法的返回类型,否则获取Setter的第一个参数类型
    获取Getter方法,可能为null
    获取字段名称
    获取Setter方法,可能为null
    获取属性值 首先调用字段对应的Getter方法获取值,如果Getter方法不存在,则判断字段如果为public,则直接获取字段值 此方法不检查任何注解,使用前需调用 isReadable(boolean) 检查是否可读
    getValue(Object bean, Type targetType, boolean ignoreError)
    获取属性值,自动转换属性值类型 首先调用字段对应的Getter方法获取值,如果Getter方法不存在,则判断字段如果为public,则直接获取字段值
    boolean
    isReadable(boolean checkTransient)
    检查属性是否可读(即是否可以通过getValue(Object)获取到值)
    boolean
    isWritable(boolean checkTransient)
    检查属性是否可读(即是否可以通过getValue(Object)获取到值)
    setValue(Object bean, Object value)
    设置Bean的字段值 首先调用字段对应的Setter方法,如果Setter方法不存在,则判断字段如果为public,则直接赋值字段值 此方法不检查任何注解,使用前需调用 isWritable(boolean) 检查是否可写
    setValue(Object bean, Object value, boolean ignoreNull, boolean ignoreError)
    设置属性值,可以自动转换字段类型为目标类型
    setValue(Object bean, Object value, boolean ignoreNull, boolean ignoreError, boolean override)
    设置属性值,可以自动转换字段类型为目标类型
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • getter

      protected Method getter
      Getter方法
    • setter

      protected Method setter
      Setter方法
  • Constructor Details

    • PropDesc

      public PropDesc(Field field, Method getter, Method setter)
      构造 Getter和Setter方法设置为默认可访问
      Parameters:
      field - 字段
      getter - get方法
      setter - set方法
    • PropDesc

      public PropDesc(String fieldName, Method getter, Method setter)
      构造 Getter和Setter方法设置为默认可访问
      Parameters:
      fieldName - 字段名
      getter - get方法
      setter - set方法
  • Method Details

    • getFieldName

      public String getFieldName()
      获取字段名,如果存在Alias注解,读取注解的值作为名称
      Returns:
      字段名
    • getRawFieldName

      public String getRawFieldName()
      获取字段名称
      Returns:
      字段名
    • getField

      public Field getField()
      获取字段
      Returns:
      字段
    • getFieldType

      public Type getFieldType()
      获得字段类型 先获取字段的类型,如果字段不存在,则获取Getter方法的返回类型,否则获取Setter的第一个参数类型
      Returns:
      字段类型
    • getFieldClass

      public Class<?> getFieldClass()
      获得字段类型 先获取字段的类型,如果字段不存在,则获取Getter方法的返回类型,否则获取Setter的第一个参数类型
      Returns:
      字段类型
    • getGetter

      public Method getGetter()
      获取Getter方法,可能为null
      Returns:
      Getter方法
    • getSetter

      public Method getSetter()
      获取Setter方法,可能为null
      Returns:
      MethodSetter 方法对象
    • isReadable

      public boolean isReadable(boolean checkTransient)
      检查属性是否可读(即是否可以通过getValue(Object)获取到值)
      Parameters:
      checkTransient - 是否检查Transient关键字或注解
      Returns:
      是否可读
    • getValue

      public Object getValue(Object bean)
      获取属性值 首先调用字段对应的Getter方法获取值,如果Getter方法不存在,则判断字段如果为public,则直接获取字段值 此方法不检查任何注解,使用前需调用 isReadable(boolean) 检查是否可读
      Parameters:
      bean - Bean对象
      Returns:
      字段值
    • getValue

      public Object getValue(Object bean, Type targetType, boolean ignoreError)
      获取属性值,自动转换属性值类型 首先调用字段对应的Getter方法获取值,如果Getter方法不存在,则判断字段如果为public,则直接获取字段值
      Parameters:
      bean - Bean对象
      targetType - 返回属性值需要转换的类型,null表示不转换
      ignoreError - 是否忽略错误,包括转换错误和注入错误
      Returns:
      this
    • isWritable

      public boolean isWritable(boolean checkTransient)
      检查属性是否可读(即是否可以通过getValue(Object)获取到值)
      Parameters:
      checkTransient - 是否检查Transient关键字或注解
      Returns:
      是否可读
    • setValue

      public PropDesc setValue(Object bean, Object value)
      设置Bean的字段值 首先调用字段对应的Setter方法,如果Setter方法不存在,则判断字段如果为public,则直接赋值字段值 此方法不检查任何注解,使用前需调用 isWritable(boolean) 检查是否可写
      Parameters:
      bean - Bean对象
      value - 值,必须与字段值类型匹配
      Returns:
      this
    • setValue

      public PropDesc setValue(Object bean, Object value, boolean ignoreNull, boolean ignoreError)
      设置属性值,可以自动转换字段类型为目标类型
      Parameters:
      bean - Bean对象
      value - 属性值,可以为任意类型
      ignoreNull - 是否忽略null值,true表示忽略
      ignoreError - 是否忽略错误,包括转换错误和注入错误
      Returns:
      this
    • setValue

      public PropDesc setValue(Object bean, Object value, boolean ignoreNull, boolean ignoreError, boolean override)
      设置属性值,可以自动转换字段类型为目标类型
      Parameters:
      bean - Bean对象
      value - 属性值,可以为任意类型
      ignoreNull - 是否忽略null值,true表示忽略
      ignoreError - 是否忽略错误,包括转换错误和注入错误
      override - 是否覆盖目标值,如果不覆盖,会先读取bean的值,null则写,否则忽略。如果覆盖,则不判断直接写
      Returns:
      this
    • toString

      public String toString()
      Overrides:
      toString in class Object