日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

java反射設(shè)置屬性值和賦值,簡單實用

 wwq圖書世界 2019-10-26
  • package com.shentb.hmb.utils;
  • import java.lang.reflect.Field;
  • import java.lang.reflect.Method;
  • public class ReflexUtils {
  • /**
  • * 反射根據(jù)屬性名獲取屬性值
  • *
  • * @param fieldName 屬性名
  • * @param object 實體類對象
  • * @return
  • */
  • public static Object getFieldValueByFieldName(String fieldName, Object object) {
  • try {
  • Field field = object.getClass().getDeclaredField(fieldName);
  • //設(shè)置對象的訪問權(quán)限,保證對private的屬性的訪問
  • field.setAccessible(true);
  • return field.get(object);
  • } catch (Exception e) {
  • e.printStackTrace();
  • return null;
  • }
  • }
  • /**
  • * 通過反射設(shè)置屬性的值
  • * @param fieldName 屬性名
  • * @param fieldValue 屬性值
  • * @param object 實體類對象
  • * @param parameterTypes 設(shè)置屬性值的類型
  • * @throws
  • */
  • public static void setFieldValueByFieldName(String fieldName,Object fieldValue,Object object,Class<?>... parameterTypes) {
  • try {
  • Field[] fields = object.getClass().getDeclaredFields();
  • for(int i=0;i<fields.length;i++){
  • Field field = fields[i];
  • //字段名稱
  • String name = field.getName();
  • if(name.equals(fieldName)){
  • field.setAccessible(true);
  • //field.set(object,fieldValue) 可代替下面的拼接set方法;
  • //將屬性的首字符大寫,方便構(gòu)造get,set方法
  • String methname = name.substring(0,1).toUpperCase()+name.substring(1);
  • Method m = object.getClass().getMethod("set" + methname,parameterTypes);
  • m.invoke(object,fieldValue);
  • }
  • }
  • }catch (Exception e){
  • e.printStackTrace();
  • }
  • }
  • }
    • 本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多