`

Java反射获取属性

    博客分类:
  • java
 
阅读更多
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static class Parent {
        public String name;
        public Parent() {
            name = "hulefei";
        }
    }

    public static class Entity extends  Parent {

        public int age;
        public boolean sex;
        public String head;
        public ArrayList<String> list;
        public Entity() {
            age = 10;
            list = new ArrayList<String>();
            list.add("aaaaa");
        }
    }

    public static void main(String[] args) {
        Map map = new HashMap();
        Entity entity = new Entity();
        Field[] fields = entity.getClass().getSuperclass().getDeclaredFields();
        for(int i = 0 , len = fields.length; i < len; i++) {
            String varName = fields[i].getName();
            try {
                // 获取原来的访问控制权限
                boolean accessFlag = fields[i].isAccessible();
                // 修改访问控制权限
                fields[i].setAccessible(true);
                // 获取在对象f中属性fields[i]对应的对象中的变量
                Object o = fields[i].get(entity);
                System.out.println("传入的对象中包含一个如下的变量:" + varName +  " = " + o);
                // 恢复访问控制权限
                fields[i].setAccessible(accessFlag);
            } catch (IllegalArgumentException ex) {
                ex.printStackTrace();
            } catch (IllegalAccessException ex) {
                ex.printStackTrace();
            }
        }
        System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX")
                .format(new Date()));

    }
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics