日期:2014-05-20 浏览次数:20982 次
Field[] fields = obj.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
// 跳过静态属性
String mod = Modifier.toString(fields[i].getModifiers());
if (mod.indexOf("static") != -1)
continue;
// 得到属性的类名
String className = fields[i].getType().getSimpleName();
// 得到属性值
if (className.equalsIgnoreCase("String"))
System.out.println(fields[i].getName()+"="+(String) fields[i].get(obj));
else if (className.equalsIgnoreCase("byte[]")) {
byte[] buffer = (byte[]) fields[i].get(obj);
System.out.println(fields[i].getName()+"="+buffer);
} else if (className.equalsIgnoreCase("boolean")) {
System.out.println(fields[i].getName()+"="+(Boolean) fields[i].get(obj));
} else if (className.equalsIgnoreCase("int")) {
System.out.println(fields[i].getName()+"="+((Integer) fields[i].get(obj)).intValue());
}
}
------解决方案--------------------
你想要达到什么目标呢,调用field.getGenericType()你想要做什么?
------解决方案--------------------
type不是String类型或它的子类所以判断永远为false(ps:String不可能有子类)