java 反射 Field
2011-09-08 10:47
134 查看
Field一.了解field
java.lang.reflect
类 Field
java.lang.Object java.lang.reflect.AccessibleObject java.lang.reflect.Field
所有已实现的接口:
AnnotatedElement, Member
public final class Fieldextends AccessibleObjectimplements Member
Field提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。
Array允许在执行 get 或 set 访问操作期间进行扩展转换,但如果将发生收缩转换,则抛出一个
IllegalArgumentException。
另请参见:
Member,
Class,
Class.getFields(),
Class.getField(String),
Class.getDeclaredFields(),
Class.getDeclaredField(String)
字段摘要 |
---|
从接口 java.lang.reflect.Member 继承的字段 |
---|
DECLARED, PUBLIC |
方法摘要 | ||
---|---|---|
boolean | equals(Object obj) 将此 Field与指定对象比较。 | |
Object | get(Object obj) 返回指定对象上此 Field表示的字段的值。 | |
| getAnnotation(Class<T> annotationClass) 如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。 | |
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() 返回一个Type 对象,它表示此 Field 对象所表示字段的声明类型。 | |
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() 如果此字段表示枚举类型的元素,则返回 true;否则返回 false。 | |
boolean | isSynthetic() 如果此字段是复合字段,则返回 true;否则返回 false。 | |
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类
Class clazz=Class.forName("com.testBean.User");////得到类对象
Object bean=clazz..newInstance();//实例化该类。
a)//解析属性信息
Field[] fs=clazz.getDeclaredFields();
for(int i = 0 ; i < fs.length; i++){
Field f = fs[i];
f.setAccessible(true); //设置些属性是可以访问的
Object val = f.get(bean);//得到此属性的值
System.out.println("name:"+f.getName()+", value = "+val);
f.set(bean,"12") ; //给属性设值
b)//解析方法信息
Method[] methodlist=cla.getDeclaredMethods();
c)得到指定的属性,并给该属性设置值。
Field field = clazz.getDeclaredField("userName");
field.setAccessible(true);
field.set(bean, "张三");
未完待续....
相关文章推荐
- Java基础--反射之Field
- Java反射实现根据field对JavaBean的排序
- JAVA反射系列之Field,java.lang.reflect.Field使用获取方法
- Java反射----Field的getModifiers()方法返回int类型值表示该字段的修饰符
- Java从入门到精通 - 反射Field
- Java反射---获取field信息跟构造函数信息
- Java_反射_Class类(Method,Field,Constructor)
- java反射Field的getModifiers()方法 返回值
- java 反射机制 之 getDeclaredField 获取私有保护字段, 再setAccessible(true)取消对权限的检查 实现对私有的访问和赋值
- java反射(Field的应用)
- java反射的field.get(null)
- JAVA反射系列之Field,java.lang.reflect.Field使用获取方法。
- Java反射之Field用法
- Java 反射机制中 getMethod()和getDeclaredField()区别
- java反射(Field的应用)
- Java 反射机制中 getMethod()和getDeclaredField()区别
- JAVA反射系列之Field,java.lang.reflect.Field使用获取方法。
- Java反射06 : 成员变量Field学习示例
- Java反射之getDeclaredField()
- java反射实现生成easyui中datagrid基础field