1.代码
/**
* 通过反射获取对象属性名、属性类型、属性值
*
* @param t 需要反射的对象
* @author hcx
*/
public static <T> void reflect(T t){
// 获取所有属性
// getDeclaredFields 不包含父类,包含私有属性
// getFields 包含父类属性
Field[] fields = t.getClass().getDeclaredFields();
for (Field field : fields) {
// 获取属性名
String fieldName = field.getName();
// 设置私有属性的访问权限
field.setAccessible(true);
// 获取属性类型
Class<?> fieldType = field.getType();
Object fieldValue = null;
try {
// 获取属性值
fieldValue = field.get(t);
// 判断属性类型
if (fieldType == Integer.class){
// ...省略代码
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
System.out.println("属性名:" + fieldName + "\t属性类型:" + fieldType + "\t属性值:" + fieldValue);
}
}
2.输出