国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java反射拼接方法名動態執行方法實例

2019-11-26 14:00:26
字體:
來源:轉載
供稿:網友

近期由于負責項目的一個模塊,該模塊下有很多分類,每個分類都有一個編碼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<Integer.valueOf(i);j++){			 System.out.println(str);		 //}				 return str;	 }		 	 public String ceshi2(String str,int i){		 for(int j=0;j<i;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反射拼接方法名動態執行方法實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 徐闻县| 瓮安县| 龙泉市| 宁明县| 仁寿县| 太仆寺旗| 松桃| 云林县| 南京市| 济南市| 长寿区| 延川县| 广南县| 外汇| 庆安县| 古交市| 赫章县| 博湖县| 柳河县| 定州市| 通城县| 盘锦市| 兴宁市| 花莲县| 临江市| 松阳县| 蚌埠市| 都昌县| 凌云县| 拉孜县| 保定市| 乌鲁木齐县| 长海县| 无锡市| 雷山县| 林甸县| 宁远县| 徐水县| 泌阳县| 珠海市| 昌宁县|