//方法一:
import java.lang.reflect.Field;
import java.lang.reflect.Method;
Class c = Class.forName("AbstractClassTest.Car");//要包名+类名
Object obj=c.newInstance();
Car car = (Car)obj;
Field[] fields = c.getDeclaredFields();//拿到数据成员
Method[] methods = c.getMethods();//拿到函数成员
System.out.println(fields.length);
System.out.println(methods.length);
for(Field f : fields){
System.out.println("该类的内部变量有:"+f.getName());
}
for(Method m : methods) {
System.out.println("该类的方法有:"+m.getName());
}
//方法二:用来遍历对象属性和属性值
public static Map readClassAttr(TestBean tb) throws Exception{
Field[] fields=tb.getClass().getDeclaredFields();
String keyList="";
String valueList="";
for(Field field:fields){
field.setAccessible(true);
if(field.get(tb)!=null&&!"".equals(field.get(tb).toString())){
keyList+=","+field.getName();
if("a".equals(field.getName())){
valueList+=","+"特殊格式哦";
}else{
valueList+=","+field.get(tb);
}
System.out.println(field.getName()+" "+field.get(tb).toString());
}
}
Map maps=new HashMap();
maps.put("keys", keyList);
maps.put("values",valueList);
return maps;
}