方法介绍
方法名 | 描述 |
getFields() | 返回Field类型的一个数组,其中包含Field对象的所有公共(public)字段。 |
getDeclaredFields() | 返回Field类型的一个数组,其中包含Filed对象的所有字段。 |
getField(String fieldName) | 返回一个公共成员的Field指定对象。 |
getDeclaredField(String fieldName) | 返回一个Field指定对象。 |
方法使用
修改Users类
public class Users {
private String username;
public int userage;
public Users(){
}
public Users(String username,int userage){
this.username = username;
this.userage = userage;
}
public Users(String username){
this.username = username;
}
public Users(int userage){
this.userage = userage;
}
public String getUsername(){
return username;
}
public void setUsername(String username){
this.username = username;
}
public int getUserage(){
return userage;
}
public void setUserage(int userage){
this.userage = userage;
}
}
获取成员变量
public class GetField {
public static void main(String[] args)throws Exception{
Class clazz = Users.class;
Field[] fields = clazz.getFields();
for(Field f : fields){
System.out.println(f);
System.out.println(f.getName());
}
System.out.println("-----------------------------");
Field[] fields2 = clazz.getDeclaredFields();
for(Field f : fields2){
System.out.println(f);
System.out.println(f.getName());
}
System.out.println("-----------------------------");
Field[] field = clazz.getField("userage");
System.out.println(field);
System.out.println("-----------------------------");
Field[] field1 = clazz.getDeclaredField("userage");
System.out.println(field1);
}
}
操作成员变量
public class GetField2 {
public static void main(String[] args)throws Exception{
Class clazz = Users.class;
Field field = clazz.getField("userage");
//对象实例化
Object obj = clazz.newInstance();
//为成员变量赋予新的值
field.set(obj,18);
//获取成员变量的值
Object o = field.get(obj);
System.out.println(o);
}
}