亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - getMethod 的第二個(gè)參數(shù)是null和new Class[]{}的區(qū)別?

瀏覽:56日期:2024-02-02 18:35:51

問(wèn)題描述

在反射方法的時(shí)候,如果某方法沒(méi)有參數(shù)好像有下面兩種方法去獲得

getMethod(method_name_str, new Class[]{});或者getMethod(method_name_str, null);

請(qǐng)問(wèn)這兩種方法有區(qū)別嗎?

問(wèn)題解答

回答1:

就效果來(lái)說(shuō),對(duì)于 Class 類(lèi)的 getMethod 方法,這兩種參數(shù)沒(méi)有區(qū)別。我們可以查看 getMethod 的源碼,getMethod 層層調(diào)用之后,會(huì)使用下面的方法:java - getMethod 的第二個(gè)參數(shù)是null和new Class[]{}的區(qū)別?

這個(gè)方法中,可以看到有一個(gè) arrayContentsEq 方法用來(lái)匹配方法的參數(shù):java - getMethod 的第二個(gè)參數(shù)是null和new Class[]{}的區(qū)別?

可以發(fā)現(xiàn),對(duì)于 parameterTypes 為 null 的情況,和對(duì)于 parameterTypes 為空數(shù)組(length == 0)的情況,效果是一樣的 —— 假設(shè)此時(shí)我們要獲取的方法 m 的參數(shù)為空,那么該方法的 m.getParameterTypes() 返回的數(shù)組(a2)的長(zhǎng)度即為 0,我們可以發(fā)現(xiàn) a1 == null 或者 a1.length == 0 的時(shí)候,arrayContentsEq 方法返回的都是 true(即匹配成功)。

回答2:

如果某方法沒(méi)有參數(shù),這兩種情況其實(shí)沒(méi)什么差別。

跟蹤getMethod(String name, Class<?>... parameterTypes)的源碼,可以發(fā)現(xiàn)如下代碼,其中a1為傳入的parameterTypes,a2為根據(jù)參數(shù)name找到的Method實(shí)例調(diào)用的method.getParameterTypes()。程序根據(jù)比較a1和a2來(lái)返回正確的Method。

private static boolean arrayContentsEq(Object[] a1, Object[] a2) { if (a1 == null) {return a2 == null || a2.length == 0; } if (a2 == null) {return a1.length == 0; } if (a1.length != a2.length) {return false; } for (int i = 0; i < a1.length; i++) {if (a1[i] != a2[i]) { return false;} } return true;}

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 黄色网页免费观看 | 永久免费视频网站在线观看 | 亚洲一区二区三区在线网站 | 欧洲女人性开放免费网站 | 国产伦理一区二区三区 | 国产99热久久这里有精品999 | 日韩毛片网站 | 濑亚美莉vs黑人欧美视频 | 国产一级自拍 | 青青草 久久久 | 精品91自产拍在线观看99re | a级午夜 | 久久精品国产福利 | 精品无人区一区二区三区a 精品无码一区在线观看 | 成年美女黄网站色大片免费看 | 青青热久久国产久精品秒播 | 国产chiese在线视频 | 国产三级一区 | 成人免费观看黄a大片夜月 成人免费体验区福利云点播 | 日本粉色视频 | 成人一级黄色大片 | 成年轻人在线看片 | 久久亚洲精品中文字幕二区 | 在线看免费观看韩国特黄一级 | 看全色黄大色黄女片爽老外 | 小色片| 国产日本一区二区三区 | 久久国产精品一区二区三区 | 国产一区二区精品久久91 | 91九色porn偷拍在线 | 国产精品久久精品视 | 91精品免费久久久久久久久 | 国产主播精品 | 99久久精品国产高清一区二区 | 深夜爽爽爽gif福利免费 | 色涩网站在线观看 | 色婷婷777 | 国产精品91在线 | 欧美一区二区三区日韩免费播 | 色吧dvd| 日韩精品福利视频一区二区三区 |