Class FieldAccessor<T>

java.lang.Object
cloud.opencode.base.reflect.accessor.FieldAccessor<T>
Type Parameters:
T - the target type | 目标类型
All Implemented Interfaces:
PropertyAccessor<T>

public class FieldAccessor<T> extends Object implements PropertyAccessor<T>
Field-based Property Accessor 基于字段的属性访问器

Accesses properties directly via Field reflection.

通过Field反射直接访问属性。

Features | 主要功能:

  • Direct field reflection access - 直接字段反射访问
  • Static field support - 静态字段支持
  • Final field detection - final字段检测

Usage Examples | 使用示例:

FieldAccessor<User> accessor = FieldAccessor.of(User.class, "name");
String name = (String) accessor.get(user);
accessor.set(user, "Alice");

Security | 安全性:

  • Thread-safe: No (not synchronized) - 线程安全: 否(未同步)
  • Null-safe: No (caller must ensure non-null target) - 空值安全: 否(调用方须确保非空目标)
Since:
JDK 25, opencode-base-reflect V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Constructor Details

    • FieldAccessor

      public FieldAccessor(Field field)
      Creates a FieldAccessor 创建FieldAccessor
      Parameters:
      field - the field | 字段
  • Method Details

    • of

      public static <T> FieldAccessor<T> of(Class<T> clazz, String fieldName)
      Creates a FieldAccessor for a field 为字段创建FieldAccessor
      Type Parameters:
      T - the target type | 目标类型
      Parameters:
      clazz - the class | 类
      fieldName - the field name | 字段名
      Returns:
      the accessor | 访问器
    • getField

      public Field getField()
      Gets the underlying Field 获取底层Field
      Returns:
      the field | 字段
    • getName

      public String getName()
      Description copied from interface: PropertyAccessor
      Gets the property name 获取属性名
      Specified by:
      getName in interface PropertyAccessor<T>
      Returns:
      the property name | 属性名
    • getType

      public Class<?> getType()
      Description copied from interface: PropertyAccessor
      Gets the property type 获取属性类型
      Specified by:
      getType in interface PropertyAccessor<T>
      Returns:
      the property type | 属性类型
    • getGenericType

      public Type getGenericType()
      Description copied from interface: PropertyAccessor
      Gets the generic property type 获取泛型属性类型
      Specified by:
      getGenericType in interface PropertyAccessor<T>
      Returns:
      the generic type | 泛型类型
    • getDeclaringClass

      public Class<T> getDeclaringClass()
      Description copied from interface: PropertyAccessor
      Gets the declaring class 获取声明类
      Specified by:
      getDeclaringClass in interface PropertyAccessor<T>
      Returns:
      the declaring class | 声明类
    • isReadable

      public boolean isReadable()
      Description copied from interface: PropertyAccessor
      Checks if property is readable 检查属性是否可读
      Specified by:
      isReadable in interface PropertyAccessor<T>
      Returns:
      true if readable | 如果可读返回true
    • isWritable

      public boolean isWritable()
      Description copied from interface: PropertyAccessor
      Checks if property is writable 检查属性是否可写
      Specified by:
      isWritable in interface PropertyAccessor<T>
      Returns:
      true if writable | 如果可写返回true
    • get

      public Object get(T target)
      Description copied from interface: PropertyAccessor
      Gets the property value 获取属性值
      Specified by:
      get in interface PropertyAccessor<T>
      Parameters:
      target - the target object | 目标对象
      Returns:
      the value | 值
    • set

      public void set(T target, Object value)
      Description copied from interface: PropertyAccessor
      Sets the property value 设置属性值
      Specified by:
      set in interface PropertyAccessor<T>
      Parameters:
      target - the target object | 目标对象
      value - the value | 值
    • getStatic

      public Object getStatic()
      Gets static field value 获取静态字段值
      Returns:
      the value | 值
    • setStatic

      public void setStatic(Object value)
      Sets static field value 设置静态字段值
      Parameters:
      value - the value | 值
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

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

      public String toString()
      Overrides:
      toString in class Object