java 根据 对象 属性名称 获取/设置属性值

一、根据属性名设置属性值

public static void setFieldValueByName(Object obj, String fieldName, Object value){
 try {   
      // 获取obj类的字节文件对象
      Class c = obj.getClass();
      // 获取该类的成员变量
      Field f = c.getDeclaredField(fieldName);
      // 取消语言访问检查
      f.setAccessible(true);
      // 给变量赋值
      f.set(obj, value);
  } catch (Exception e) {    
       logger.info(e.getMessage());    
  }   
 
}

 

二、根据属性名获取属性值

/** 
 * 根据属性名获取属性值 
 * */  
   private 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) {    
           log.error(e.getMessage(),e);    
           return null;    
       }    
   } 

 

posted @ 2024-09-26 17:46  BillyYang  阅读(173)  评论(0编辑  收藏  举报