最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java反射拼接方法名動態(tài)執(zhí)行方法實(shí)例

 更新時(shí)間:2016年08月05日 15:35:57   投稿:jingxian  
下面小編就為大家?guī)硪黄猨ava反射拼接方法名動態(tài)執(zhí)行方法實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

近期由于負(fù)責(zé)項(xiàng)目的一個(gè)模塊,該模塊下有很多分類,每個(gè)分類都有一個(gè)編碼code,這個(gè)值是作為一個(gè)參數(shù)攜帶過來的。但是每個(gè)code確實(shí)對應(yīng)一個(gè)方法的。

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

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

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();
			//第一個(gè)參數(shù)寫的是方法名,第二個(gè)\第三個(gè)\...寫的是方法參數(shù)列表中參數(shù)的類型
			Method method=c.getMethod("ceshi2", String.class,int.class);
			//invoke是執(zhí)行該方法,并攜帶參數(shù)值
			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;
	 }
	  
	}  

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

public String fanShe(String methodName,String className) throws ClassNotFoundException, SecurityException, NoSuchMethodException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
		//里面寫自己的類名及路徑
			Class<?> c = Class.forName(className);
			Object obj = c.newInstance();
			//第一個(gè)參數(shù)寫的是方法名,第二個(gè)\第三個(gè)\...寫的是方法參數(shù)列表中參數(shù)的類型
			Method method=c.getMethod(methodName, String.class,int.class);
			//invoke是執(zhí)行該方法,并攜帶參數(shù)值
			String str2= (String) method.invoke(obj, new Object[]{"myname",4});
			return str2;
	 }

當(dāng)然在實(shí)際的需求中還是要根據(jù)項(xiàng)目的需要來自己抽取方法的.希望對大家有幫助。

以上這篇java反射拼接方法名動態(tài)執(zhí)行方法實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實(shí)現(xiàn)下載文件的6種方式

    Java實(shí)現(xiàn)下載文件的6種方式

    本文主要介紹了Java實(shí)現(xiàn)下載文件的6種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Spark Streaming算子開發(fā)實(shí)例

    Spark Streaming算子開發(fā)實(shí)例

    這篇文章主要介紹了Spark Streaming算子開發(fā)實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • IDEA運(yùn)行SpringBoot項(xiàng)目的圖文教程

    IDEA運(yùn)行SpringBoot項(xiàng)目的圖文教程

    本文主要介紹了IDEA運(yùn)行SpringBoot項(xiàng)目的圖文教程,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Java中StringBuilder類的用法解析

    Java中StringBuilder類的用法解析

    StringBuilder是一個(gè)可變的字符序列,這個(gè)類提供了一個(gè)與StringBuffer兼容的API。本文主要為大家介紹了StringBuilder類的常用用法,需要的可以參考一下
    2023-05-05
  • JAVA實(shí)現(xiàn)線程的三種方法

    JAVA實(shí)現(xiàn)線程的三種方法

    這篇文章介紹了JAVA實(shí)現(xiàn)線程的三種方法,有需要的朋友可以參考一下
    2013-09-09
  • Spring Cloud學(xué)習(xí)教程之Zuul統(tǒng)一異常處理與回退

    Spring Cloud學(xué)習(xí)教程之Zuul統(tǒng)一異常處理與回退

    Spring Cloud Zuul對異常的處理整體來說還是比較方便的,流程也比較清晰,下面這篇文章主要給大家介紹了關(guān)于Spring Cloud學(xué)習(xí)教程之Zuul統(tǒng)一異常處理與回退的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 數(shù)據(jù)庫基本操作語法歸納總結(jié)

    數(shù)據(jù)庫基本操作語法歸納總結(jié)

    本篇文章主要介紹了數(shù)據(jù)庫的一些常用方法及一些基本操作,需要的朋友可以參考下
    2017-04-04
  • SpringBoot2 參數(shù)管理實(shí)踐之入?yún)⒊鰠⑴c校驗(yàn)的方式

    SpringBoot2 參數(shù)管理實(shí)踐之入?yún)⒊鰠⑴c校驗(yàn)的方式

    這篇文章主要介紹了SpringBoot2 參數(shù)管理實(shí)踐,入?yún)⒊鰠⑴c校驗(yàn),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-06-06
  • Spring Data JPA結(jié)合Mybatis進(jìn)行分頁查詢的實(shí)現(xiàn)

    Spring Data JPA結(jié)合Mybatis進(jìn)行分頁查詢的實(shí)現(xiàn)

    本文主要介紹了Spring Data JPA結(jié)合Mybatis進(jìn)行分頁查詢的實(shí)現(xiàn)
    2024-03-03
  • Tomcat 實(shí)現(xiàn)WebSocket詳細(xì)介紹

    Tomcat 實(shí)現(xiàn)WebSocket詳細(xì)介紹

    這篇文章主要介紹了Tomcat 如何實(shí)現(xiàn)WebSocket的相關(guān)資料,對WebSocket協(xié)議通信的過程進(jìn)行了詳細(xì)介紹,需要的朋友可以參考下
    2016-12-12

最新評論

湟源县| 卢氏县| 商都县| 思茅市| 嘉鱼县| 饶河县| 万荣县| 大渡口区| 布拖县| 淮南市| 濮阳市| 大英县| 阿荣旗| 黄骅市| 杭州市| 巧家县| 安塞县| 彭泽县| 乐清市| 大方县| 吉隆县| 汉源县| 渭源县| 永仁县| 阿拉善右旗| 梅州市| 黄大仙区| 米泉市| 新源县| 阜城县| 鞍山市| 保靖县| 伊吾县| 开封市| 师宗县| 札达县| 阿城市| 清远市| 大同县| 枝江市| 马公市|