利用反射获取类的属性值和方法
package com.dayee.wintalent.recruit.position.entity;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class Auser {
private String name;
private String age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public static void main(String[] args) throws Exception{
Auser bean = new Auser();
bean.setAge("26");
bean.setName("张三");
bean.setSex("男");
Class<Auser> userClass = Auser.class;
/**========反射获得属性的类型、值=======**/
Field[] fs = userClass.getDeclaredFields ();//获得对象类的所有属性
for (int i = 0; i < fs.length; i++) {
Field f = fs[i];
f.setAccessible(true); // 设置些属性是可以访问的
String type = f.getType().toString(); // 得到此属性的类型
Object val = f.get(bean); // 得到此属性的值
System.out.println(" type:" + type + "\r\n name:" + f.getName() + "\r\n value = " + val);
}
/** ========得到类中的方法======= **/
Method[] methods = userClass.getMethods();//获得对象类的所有方法
for (int i = 0; i < methods.length; i++) {
Method method = methods[i];
if (method.getName().startsWith("get")) {
System.out.print("methodName:" + method.getName() + "/t");
System.out.println("value:" + method.invoke(bean)); // 得到 get方法的值
}
}
}
}