先建立一个类,有四种属性:
private int id;
private String name;
private byte by;
private short st;
以下方法,创建一个对象,然后打印该对象的属性名字,属性值,和属性的类型:
public class T {
public static void main(String[] args) throws Exception {
User u = new User();
u.setId(1);
u.setName("cc");
u.setBy((byte)1);
u.setSt((short)2);
getProperty(u);
}
/**
* 获得一个对象各个属性的字节流
*/
@SuppressWarnings("unchecked")
public static void getProperty(Object entityName) throws Exception {
Class c = entityName.getClass();
Field field[] = c.getDeclaredFields();
for (Field f : field) {
Object v = invokeMethod(entityName, f.getName(), null);
System.out.println(f.getName() + "\t" + v + "\t" + f.getType());
}
}
/**
* 获得对象属性的值
*/
@SuppressWarnings("unchecked")
private static Object invokeMethod(Object owner, String methodName,
Object[] args) throws Exception {
Class ownerClass = owner.getClass();
methodName = methodName.substring(0, 1).toUpperCase()
+ methodName.substring(1);
Method method = null;
try {
method = ownerClass.getMethod("get" + methodName);
} catch (SecurityException e) {
} catch (NoSuchMethodException e) {
return " can't find 'get" + methodName + "' method";
}
return method.invoke(owner);
}
}
打印结果如下:
id 1 int
name cc class java.lang.String
by 1 byte
st 2 short
请您到ITEYE看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com