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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java反射 动态调用_java反射拼接方法名动态执行方法

發布時間:2025/3/11 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java反射 动态调用_java反射拼接方法名动态执行方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

近期由于負責項目的一個模塊,該模塊下有很多分類,每個分類都有一個編碼code,這個值是作為一個參數攜帶過來的.但是每個code確實對應一個方法的.

code的值有很多個,自己又不想做ifelse或者switch判斷于是就狂搜資料,主要讓我發現利用java的反射機制可以完美的解決這個問題

測試代碼如下:(可以攜帶多個參數哦)

package?com.escs.xmlutils;

import?java.lang.reflect.Method;

public?class?Test?{

public?String?ceshi(){

System.out.println("1111111111111");

return?"success";

}

public?static?void?main(String[]?args)?throws?Exception?{

//里面寫自己的類名及路徑

Class>?c?=?Class.forName("com.escs.xmlutils.Test");

Object?obj?=?c.newInstance();

//第一個參數寫的是方法名,第二個\第三個\...寫的是方法參數列表中參數的類型

Method?method=c.getMethod("ceshi2",?String.class,int.class);

//invoke是執行該方法,并攜帶參數值

String?str2=?(String)?method.invoke(obj,?new?Object[]{"myname",4});

System.out.println(str2);

}

public??String?ceshi(String?str){

//for(int?j=0;j

System.out.println(str);

//}

return?str;

}

public??String?ceshi2(String?str,int?i){

for(int?j=0;j

System.out.println(str+"22222");

}

return?str;

}

}

這樣要是動態拼接方法名就更簡單了.比如,我的code值有100個,分別為1~100,我code方法分別為ReturnCodeList();這個時候我們把上面的方法抽取出來,返回我們需要的值就行了比如:

public?String?fanShe(String?methodName,String?className)?throws?ClassNotFoundException,?SecurityException,?NoSuchMethodException,?InstantiationException,?IllegalAccessException,?IllegalArgumentException,?InvocationTargetException{

//里面寫自己的類名及路徑

Class>?c?=?Class.forName(className);

Object?obj?=?c.newInstance();

//第一個參數寫的是方法名,第二個\第三個\...寫的是方法參數列表中參數的類型

Method?method=c.getMethod(methodName,?String.class,int.class);

//invoke是執行該方法,并攜帶參數值

String?str2=?(String)?method.invoke(obj,?new?Object[]{"myname",4});

return?str2;

}

當然在實際的需求中還是要根據項目的需要來自己抽取方法的.希望對大家有幫助.

想更深入了解java反射原理的可以參考:http://www.cnblogs.com/forlina/archive/2011/06/21/2085849.html

總結

以上是生活随笔為你收集整理的java反射 动态调用_java反射拼接方法名动态执行方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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