import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* 反射工具类
*/
public class ReflectionUtil {
/**
* 通过属性名称获得属性值
*
* @param object
* @param propertyName
* @return
*/
public static Object getValue(Object object, String propertyName) {
try {
Class<? extends Object> clazz = object.getClass();
PropertyDescriptor pd = new PropertyDescriptor(propertyName, clazz);
Method getMethod = pd.getReadMethod();// 获得get方法
Object o = getMethod.invoke(object);// 执行get方法返回一个Object
return o;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 根据对象获得所有字段的值
*
* @param object
*/
public static void method(Object object) {
try {
Class<? extends Object> clazz = object.getClass();
Field[] fields = object.getClass().getDeclaredFields();// 获得属性
for (Field field : fields) {
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
Method getMethod = pd.getReadMethod();// 获得get方法
Object o = getMethod.invoke(object);// 执行get方法返回一个Object
System.out.println(o);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Java反射获取对象属性 以及值
最新推荐文章于 2023-04-26 13:23:16 发布