日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

用反射去构建一个对象吧!

發(fā)布時(shí)間:2025/5/22 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用反射去构建一个对象吧! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??

比如想把 A (以下稱modelWantToCast)的所有字段 賦值給B(以下稱modelCastTo) 【需要字段名一樣】

public static <T> T castModelToAnotherModel(Object modelWantToCast, Class<T> modelCastToClazz) {if (modelWantToCast == null) {return null;}// 粗暴地獲取A的所有方法Method[] dtoMethod = modelWantToCast.getClass().getDeclaredMethods();String getMethodName;T modelCastTo = null;try {// 實(shí)例化這個(gè)BmodelCastTo = modelCastToClazz.newInstance();} catch (InstantiationException | IllegalAccessException e) {e.printStackTrace();}for (Method getMethod : dtoMethod) {getMethodName = getMethod.getName();if (getMethodName.indexOf("get", 0) == -1) {continue;}...... 代碼在下面}return modelCastTo;}

1、之前經(jīng)常用的很逗的方法

  • 獲取它的get set方法
  • 從A中g(shù)et出來
  • 通過set方法set到A中去
String setMethodName = "set" + getMethodName.substring(3, getMethodName.length());// 獲取set方法名字Object value = null;// 取值try {value = getMethod.invoke(modelWantToCast);} catch (IllegalAccessException | InvocationTargetException e) {e.printStackTrace();}Class parameterTypes = getMethod.getReturnType();// 取參數(shù)的類Method setMethod;try {// 獲取set方法setMethod = modelCastToClazz.getDeclaredMethod(setMethodName, parameterTypes);} catch (NoSuchMethodException | SecurityException e) {continue;}try {// 粗暴地invoke進(jìn)去setMethod.invoke(modelCastTo, value);} catch (IllegalAccessException | InvocationTargetException e) {e.printStackTrace();}

2、后來發(fā)現(xiàn)還有更加粗暴的方法

  • 獲取對(duì)象它get方法
  • 從A中g(shù)et出來
  • 從field直接set進(jìn)去
try {Object value = getMethod.invoke(modelWantToCast);// 取值if (value == null) {continue;}String fileName = getFileNameFromGetterOrSetter(getMethodName); // 從get方法獲取屬性名Field field = modelCastToClazz.getDeclaredField(fileName);field.setAccessible(true);field.set(modelCastTo, value);// 直接塞進(jìn)去} catch (NoSuchFieldException | IllegalAccessException | InvocationTargetException e) {e.printStackTrace();}

轉(zhuǎn)載于:https://my.oschina.net/anur/blog/1616022

總結(jié)

以上是生活随笔為你收集整理的用反射去构建一个对象吧!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精品在线播放 | 奇米99| 中文字幕一区二区久久人妻网站 | 黄色片中文字幕 | 自拍色图 | 欧美成人黄色 | 国产资源在线看 | 日韩一区二区在线免费观看 | 91久久国语露脸精品国产高跟 | 高清一区二区在线 | 国产午夜无码视频在线观看 | 国产视频在 | 天堂一区二区三区四区 | 日本精品少妇 | 被绑在床强摁做开腿呻吟 | 色婷婷中文字幕 | 日本aa视频 | 操操操日日日 | 97夜夜操| 免费黄网在线观看 | 精品欧美激情精品一区 | 精品国产xxx| 成人午夜视频精品一区 | 色婷av | 强伦人妻一区二区三区视频18 | 欧美 国产 综合 | 小柔好湿好紧太爽了国产网址 | 国产在线成人精品午夜 | 97成人超碰| 国产精品久久久久久人妻精品动漫 | 岛国免费av| 天堂网av在线 | 久久久久久久极品内射 | 欧美一级在线播放 | 激情午夜视频 | 1000亚洲裸体人体 | 伊人网在线播放 | 91在线观看免费高清 | 国产一级片视频 | 猫咪av网 | 午夜精品久久久内射近拍高清 | 久久久噜噜噜久久久 | 亚洲第一综合色 | 亚洲性综合 | 欧美香蕉在线 | 欧洲熟妇的性久久久久久 | 亚洲国产精品成人va在线观看 | 涩视频在线观看 | 日韩高清三区 | 亚洲成a人片77777kkkk | 日本wwwxx| 日本黄色录象 | 欧美无专区 | 青青草原免费观看 | 午夜精品久久久内射近拍高清 | 神马久久久久久久 | 日韩综合在线观看 | 国产剧情一区 | 四虎中文字幕 | 香蕉污视频 | 蜜桃视频在线观看一区二区 | 久久精品国产精品亚洲色婷婷 | 亚洲欧美另类中文字幕 | av成人动漫 | 天堂在线网 | 国产精品国产三级国产普通话对白 | 一区二区欧美日韩 | 国产拍拍视频 | www.浪潮av.com | 伊人伦理 | 日本最新中文字幕 | 午夜aaa| 国产精品无码乱伦 | 女性毛片 | 男人的天堂在线观看av | 色就色综合 | 91看片网 | 国产精品不卡一区 | 黄网免费在线观看 | 91成人在线观看喷潮蘑菇 | 精品国产乱码久久久久久影片 | 久久免费播放视频 | 国产欧美视频一区二区三区 | 日日夜夜免费精品 | 奇米激情 | 午夜精品视频 | 亚洲视频网站在线 | 精品九九视频 | 亚洲av中文无码乱人伦在线视色 | 男人与雌性宠物交啪啪 | 毛片网在线 | a免费在线观看 | 夜色成人 | 亚洲黄色小视频 | 久一国产| 日韩精品在线观看一区 | 91av视频免费观看 | 亚洲一区二区三区加勒比 | 先锋影音av资源在线观看 |