java类反射

来源:互联网 发布:tp框架源码 编辑:程序博客网 时间:2024/06/06 13:16

利用反射获取类的属性值和方法


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方法的值}}}}


0 0
原创粉丝点击