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?方法摘要?booleanequals(Object?obj)Field?与指定对象比较。?Objectget(Object?obj)Field?表示的字段的值。<T extends Annotation>?
TgetAnnotation(Class<T>?annotationClass)?booleangetBoolean(Object?obj)boolean?字段的值。?bytegetByte(Object?obj)byte?字段的值。?chargetChar(Object?obj)char?类型或另一个通过扩展转换可以转换为?char?类型的基本类型的静态或实例字段的值。?Annotation[]getDeclaredAnnotations()?Class<?>getDeclaringClass()Class?对象,该类或接口声明由此?Field?对象表示的字段。?doublegetDouble(Object?obj)double?类型或另一个通过扩展转换可以转换为?double?类型的基本类型的静态或实例字段的值。?floatgetFloat(Object?obj)float?类型或另一个通过扩展转换可以转换为?float?类型的基本类型的静态或实例字段的值。?TypegetGenericType()?intgetInt(Object?obj)int?类型或另一个通过扩展转换可以转换为?int?类型的基本类型的静态或实例字段的值。?longgetLong(Object?obj)long?类型或另一个通过扩展转换可以转换为?long?类型的基本类型的静态或实例字段的值。?intgetModifiers()Field?对象表示的字段的 Java 语言修饰符。?StringgetName()Field?对象表示的字段的名称。?shortgetShort(Object?obj)short?类型或另一个通过扩展转换可以转换为?short?类型的基本类型的静态或实例字段的值。?Class<?>getType()Class?对象,它标识了此?Field?对象所表示字段的声明类型。?inthashCode()Field?的哈希码。?booleanisEnumConstant()?booleanisSynthetic()?voidset(Object?obj, Object?value)Field?对象表示的字段设置为指定的新值。?voidsetBoolean(Object?obj, boolean?z)boolean?值。?voidsetByte(Object?obj, byte?b)byte?值。?voidsetChar(Object?obj, char?c)char?值。?voidsetDouble(Object?obj, double?d)double?值。?voidsetFloat(Object?obj, float?f)float?值。?voidsetInt(Object?obj, int?i)int?值。?voidsetLong(Object?obj, long?l)long?值。?voidsetShort(Object?obj, short?s)short?值。?StringtoGenericString()Field(包括其一般类型)的字符串。?StringtoString()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, "张三");
??? 未完待续.