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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

一个Java反射机制例子

發布時間:2023/12/15 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个Java反射机制例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?來源:http://blog.csdn.net/loyoveui/archive/2007/06/22/1662154.aspx

?

package test;

import java.lang.reflect.Method;

public class InvokeTest {
? /**
?? *
?? * main 方法
?? * @param args
?? * void
?? */
? public static void main(String[] args) {
??? try {
????? InvokeTest invokeTest = new InvokeTest();
????? //1.第一步獲取方法的映射
????? //String[] realArgs = {"",""};//定義一個與execute方法第1個參數對應的String數組(注意此數組只為獲取方法的映射)
????? //Integer in = new Integer(0);//定義一個與execute方法第2個參數對應的Integer對象?????
????? //Class[] c_args = new Class[2];
????? //c_args[0] = realArgs.getClass();//分別獲取以上兩個參數的class
????? //c_args[1] = in.getClass();
????? //Method method = invokeTest.getClass().getMethod("execute", c_args);//返回值為test方法的映射(類型Method)
????? /**
?????? * 注意,以上幾句(11-16行)可以寫成下面一句
?????? * 目的是獲取execute方法的映射,第一個參數是方法,第二個參數是execute方法所需要的參數列表,類型是class
?????? * 所以當execute方法沒有參數時,getMethod第二個參數為null即可
?????? */
????? Method method = invokeTest.getClass().getMethod("execute",
????????? new Class[] { String[].class, Integer.class });
?????
????? //2.第二步調用方法
????? //String[] a1={"zhong","cheng"};//這里的數組用于做真正調用時的參數
????? //Integer a2=new Integer(5);//同上
????? //Object[] allArgs = new Object[2];
????? //allArgs[0] = a1;
????? //allArgs[1] = a2;
????? //Object[] result = (Object[])method.invoke(invokeTest, allArgs);//調用execute方法并獲取返回值
????? /**
?????? * 注意,以上幾句(21-26行)可以寫成下面一句
?????? * 目的是調用實例invokeTest的execute方法,參數(包含一個String數組和一個Integer對象)類型是Object
?????? * invoke()方法的第一個參數表示被調用的方法所屬類的實例,所以如果execute是靜態方法,
?????? * invoke的第一個參數可以為空
?????? */
????? Object[] result = (Object[])method.invoke(invokeTest, new Object[] {
????????? new String[] { "zhong", "cheng" }, new Integer(5) });
????? //打印出返回值
????? for(int i=0;i<result.length;i++){
??????? System.out.print(result[i]);
????? }
??? } catch (Exception e) {
????? e.printStackTrace();
??? }

? }

? /**
?? *
?? * 用于測試的execute方法,此處只是將String[]和Integer的值打印出來
?? * 并返回一個提示性的字符串數組
?? * @param String[] str
?? * @param Integer intN
?? * String[]
?? */
? public String[] execute(String[] str, Integer intN) {
??? for (int j = 0; j < str.length; j++) {
????? System.out.println(str[j]);
??? }
??? System.out.println(intN.intValue());
??? return new String[]{"display ","have ","bean ","finished "," !"};
? }

}

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的一个Java反射机制例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。