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())); } }
Java反射获取属性
猜你喜欢
转载自hulefei29.iteye.com/blog/2285262
今日推荐
周排行