package bea.com.util;
import java.lang.reflect.Field;
public class reflectUtil {
/**
* 反射输出字段类型的值
* @param obj
*/
public static void reflect(Object obj) {
if (obj == null) return;
Field[] fields = obj.getClass().getDeclaredFields();
for (int j = 0; j < fields.length; j++) {
fields[j].setAccessible(true);
// 字段名
System.out.print(fields[j].getName() + ",");
// 字段值
if (fields[j].getType().getName().equals(
java.lang.String.class.getName())) {
// String type
try {
System.out.print(fields[j].get(obj));
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (fields[j].getType().getName().equals(
java.lang.Integer.class.getName())
|| fields[j].getType().getName().equals("int")) {
// Integer type
try {
System.out.println(fields[j].getInt(obj));
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 其他类型。。。
}
System.out.println();
}
/**
* 反射获取对象的Id
* @param obj
* @return
*/
public static Integer getIdByreflect(Object obj) {
if (obj == null)
return null;
Field[] fields = obj.getClass().getDeclaredFields();
for (int j = 0; j < fields.length; j++) {
fields[j].setAccessible(true);
// 字段名
System.out.print(fields[j].getName() + ",");
// 字段值
if ( (fields[j].getType().getName().equals(
java.lang.Integer.class.getName())
|| fields[j].getType().getName().equals("int")) && fields[j].getName()=="id") {
try {
return fields[j].getInt(obj);
} catch (IllegalArgumentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
return null;
}
}
结果:
id,0
name,张三