午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

深入解析Java中反射中的invoke()方法

瀏覽:23日期:2022-08-11 13:36:10

先講一下java中的反射:

反射就是將類別的各個組成部分進行剖析,可以得到每個組成部分,就可以對每一部分進行操作

反射機制應用場景:逆向代碼、動態生成類框架等,使用反射機制能夠大大的增強程序的擴展性。

反射的基本步驟:首先獲得Class對象,然后實例化對象,獲得類的屬性、方法或者構造函數,最后訪問屬性、調用方法、調用構造函數創建對象。而invoke()方法就是用來執行指定對象的方法。

在比較復雜的程序或框架中來使用反射技術,可以簡化代碼提高程序的復用性。

講的是Method類的invoke()方法。

深入解析Java中反射中的invoke()方法

既然是講invoke方法,那就不講怎么使用反射了,代碼上來先:

package online;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import org.junit.Test;public class Msym {public void test(String[] arg){for (String string : arg) { System.out.println(string);} } @Test public void demo1() throws Exception {//獲取字節碼對象Class<Msym> clazz = (Class<Msym>) Class.forName('online.Msym');//獲取一個對象Constructor con = clazz.getConstructor();Msym m = (Msym) con.newInstance();String[] s = new String[]{'aa','bb'};//獲取Method對象Method method = clazz.getMethod('test', String[].class);//調用invoke方法來調用method.invoke(m, s); }}

測試會報錯:

深入解析Java中反射中的invoke()方法

紅色框框顯示是參數錯誤,test方法需要是字符串數組啊,我傳遞也是字符串數組,怎么就不對了??

讓我們來看一下invoke方法:

深入解析Java中反射中的invoke()方法

invoke方法的參數,一個是Object類型,也就是調用該方法的對象,

第二個參數是一個可變參數類型,這個可變參數類型怎么能傳遞給一個數組類型呢?一個是多個參數。一個是一個數組參數,顯然參數的個數不匹配,怎么解決呢?

解決辦法就是將可變參數變成一個參數:

將傳遞進去的s強轉為Object類型 將s重新包裝成一個Object數組

測試一下:

深入解析Java中反射中的invoke()方法

結果可行。

作者:碼上猿夢出處:http://www.cnblogs.com/daimajun/

到此這篇關于深入解析Java中反射中的invoke()方法的文章就介紹到這了,更多相關Java invoke()內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 久久人视频 | 香蕉视频在线观看网站 | 国产精品国产精品88 | 国产欧美一区二区三区在线观看视频 | 91成人在线观看喷潮 | 伊人久久国产 | 中文字幕一区在线观看 | 纯爱无遮挡h肉动漫在线播放 | 91在线小视频 | 亚洲欧美国产精品专区久久 | 污污视频免费看 | av在线免费播放网址 | 一级黄毛片 | 国产精品99久久久久久久 | 今天免费高清在线观看国语 | 中文在线字幕免费观 | 真实国产乱子伦对白在线 | 午夜爽爽 | 国产午夜精品一区二区三区嫩草 | 手机看片成人 | 国产精品久久影视 | 日韩av大全| 午夜伦理福利 | av在线播放观看 | 黄色网址在线免费 | 日韩网站免费观看 | 亚洲精品视频久久 | 欧美一级淫片免费视频魅影视频 | 337p粉嫩大胆噜噜噜亚瑟影院 | 91视频免费在线看 | 亚洲视频中文字幕在线观看 | 亚洲一区黄色 | 午夜怡红院| 国产日韩精品视频 | 青青国产在线视频 | 不卡成人| 日韩精品一区二区视频 | 国产不卡视频在线观看 | 香蕉视频污污 | 一级片在线免费播放 | 怡红院在线观看 |