Java中通过反射获得对象的属性信息
2014-07-13 17:16
465 查看
先建立一个类,有四种属性:
Java代码
private int id;
private String name;
private byte by;
private short st;
以下方法,创建一个对象,然后打印该对象的属性名字,属性值,和属性的类型:
Java代码
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);
}
}
打印结果如下:
Java代码
id 1 int
name cc class java.lang.String
by 1 byte
st 2 short
通过这些内容,可以在系统中写一些公共的解析方法,内容仅供参考。
更多内容访问我的专栏:http://www.iteye.com/blogs/subjects/cuisuqiang
Java代码
private int id;
private String name;
private byte by;
private short st;
以下方法,创建一个对象,然后打印该对象的属性名字,属性值,和属性的类型:
Java代码
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);
}
}
打印结果如下:
Java代码
id 1 int
name cc class java.lang.String
by 1 byte
st 2 short
通过这些内容,可以在系统中写一些公共的解析方法,内容仅供参考。
更多内容访问我的专栏:http://www.iteye.com/blogs/subjects/cuisuqiang
相关文章推荐
- Java中通过反射获得对象的属性信息
- Java反射之通过反射获取一个对象的方法信息(实例代码)
- Java通过反射机制动态设置对象属性值
- java反射技术通过对象和属性名得到属性值
- 通过java反射获得属性名 和 值
- JAVA 反射获得object对象对应的实体类的属性、及属性值
- Java循环一个对象的所有属性,并通过反射给这些属性赋值/取值
- Java通过反射机制动态设置对象属性值的方法
- Java反射---Class对象,获得类的方法、成员变量和构造函数信息
- Java中通过注解+反射拿到对象的属性和方法
- java通过反射给对象设置属性【工具包系列】
- 通过反射查看类信息---获得Class对象
- java 通过反射获得类的属性和调用方法
- java-反射(1)-通过反射改变对象的属性
- Object get["属性"]; java反射技术通过对象和属性名得到属性值
- java通过反射设置对象私有属性
- java之通过反射,来获得某对象的所有方法(类方法提取器)
- java中利用反射获得对象的各种信息
- JAVA 反射获得object对象对应的实体类的属性、及属性值
- java通过反射+javassist获得方法所有信息(返回值、方法名、参数类型列表、参数列表)