Field 反射
java.lang.Object?java.lang.reflect.AccessibleObject ?
java.lang.reflect.Field
public final class?Field
Field
?提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。
Array
?允许在执行 get 或 set 访问操作期间进行扩展转换,但如果将发生收缩转换,则抛出一个IllegalArgumentException
。
Member
,?Class
,?Class.getFields()
,?Class.getField(String)
,?Class.getDeclaredFields()
,Class.getDeclaredField(String)
DECLARED, PUBLIC
?方法摘要?boolean
equals(Object?obj)
Field
?与指定对象比较。?Object
get(Object?obj)
Field
?表示的字段的值。<T extends Annotation>?
T
getAnnotation(Class<T>?annotationClass)
?boolean
getBoolean(Object?obj)
boolean
?字段的值。?byte
getByte(Object?obj)
byte
?字段的值。?char
getChar(Object?obj)
char
?类型或另一个通过扩展转换可以转换为?char
?类型的基本类型的静态或实例字段的值。?Annotation[]
getDeclaredAnnotations()
?Class<?>
getDeclaringClass()
Class
?对象,该类或接口声明由此?Field
?对象表示的字段。?double
getDouble(Object?obj)
double
?类型或另一个通过扩展转换可以转换为?double
?类型的基本类型的静态或实例字段的值。?float
getFloat(Object?obj)
float
?类型或另一个通过扩展转换可以转换为?float
?类型的基本类型的静态或实例字段的值。?Type
getGenericType()
?int
getInt(Object?obj)
int
?类型或另一个通过扩展转换可以转换为?int
?类型的基本类型的静态或实例字段的值。?long
getLong(Object?obj)
long
?类型或另一个通过扩展转换可以转换为?long
?类型的基本类型的静态或实例字段的值。?int
getModifiers()
Field
?对象表示的字段的 Java 语言修饰符。?String
getName()
Field
?对象表示的字段的名称。?short
getShort(Object?obj)
short
?类型或另一个通过扩展转换可以转换为?short
?类型的基本类型的静态或实例字段的值。?Class<?>
getType()
Class
?对象,它标识了此?Field
?对象所表示字段的声明类型。?int
hashCode()
Field
?的哈希码。?boolean
isEnumConstant()
?boolean
isSynthetic()
?void
set(Object?obj, Object?value)
Field
?对象表示的字段设置为指定的新值。?void
setBoolean(Object?obj, boolean?z)
boolean
?值。?void
setByte(Object?obj, byte?b)
byte
?值。?void
setChar(Object?obj, char?c)
char
?值。?void
setDouble(Object?obj, double?d)
double
?值。?void
setFloat(Object?obj, float?f)
float
?值。?void
setInt(Object?obj, int?i)
int
?值。?void
setLong(Object?obj, long?l)
long
?值。?void
setShort(Object?obj, short?s)
short
?值。?String
toGenericString()
Field
(包括其一般类型)的字符串。?String
toString()
Field
?的字符串。?从类 java.lang.reflect.AccessibleObject 继承的方法getAnnotations, isAccessible, isAnnotationPresent, setAccessible, setAccessible
?二.使用:
?? 1.拿到类的属性和设置属性值。
?比如 有一个User类? b)//解析方法信息
?? Method[] methodlist=cla.getDeclaredMethods();
?? c)得到指定的属性,并给该属性设置值。
??????? Field field = clazz.getDeclaredField("userName");
???????? field.setAccessible(true);
?? ??? ? field.set(bean, "张三");
??? 未完待续.