java 获取对象属性值与属性名称
/**
* 获取对象属性,返回一个字符串数组
*
* @param o 对象
* @return String[] 字符串数组
*/
private static String[] getFiledName(Object o)
{
try
{
Field[] fields = o.getClass().getDeclaredFields();
String[] fieldNames = new String[fields.length];
for (int i=0; i < fields.length; i++)
{
fieldNames[i] = fields[i].getName();
}
return fieldNames;
} catch (SecurityException e)
{
e.printStackTrace();
System.out.println(e.toString());
}
return null;
}
/**
* 使用反射根据属性名称获取属性值
*
* @param fieldName 属性名称
* @param o 操作对象
* @return Object 属性值
*/
private static Object getFieldValueByName(String fieldName, Object o)
{
try
{
String firstLetter = fieldName.substring(0, 1).toUpperCase();
String getter = "get" + firstLetter + fieldName.substring(1);
Method method = o.getClass().getMethod(getter, new Class[] {});
Object value = method.invoke(o, new Object[] {});
return value;
} catch (Exception e)
{
System.out.println("属性不存在");
return null;
}
}