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;
  }
}

posted @ 2020-02-23 14:28  Mr_xYu  阅读(2623)  评论(0编辑  收藏  举报