欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

測試代碼如下:(可以攜帶多個參數(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();
			//第一個參數(shù)寫的是方法名,第二個\第三個\...寫的是方法參數(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個,分別為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();
			//第一個參數(shù)寫的是方法名,第二個\第三個\...寫的是方法參數(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;
	 }

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

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

相關(guān)文章

  • Lock、Condition實現(xiàn)簡單的生產(chǎn)者消費者模式示例

    Lock、Condition實現(xiàn)簡單的生產(chǎn)者消費者模式示例

    這篇文章主要介紹了Lock、Condition實現(xiàn)簡單的生產(chǎn)者消費者模式示例,需要的朋友可以參考下
    2014-04-04
  • kill命令在Java應(yīng)用中使用的注意事項小結(jié)

    kill命令在Java應(yīng)用中使用的注意事項小結(jié)

    這篇文章主要給大家介紹了關(guān)于kill命令在Java應(yīng)用中使用的注意事項,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 關(guān)于消息中間件RocketMQ的基本概念及功能

    關(guān)于消息中間件RocketMQ的基本概念及功能

    這篇文章主要介紹了關(guān)于消息中間件RocketMQ的基本概念及功能,RocketMQ作為一款純java、分布式、隊列模型的開源消息中間件,支持事務(wù)消息、順序消息、批量消息、定時消息、消息回溯等,需要的朋友可以參考下
    2023-05-05
  • Java中的BlockingQueue接口源碼解析

    Java中的BlockingQueue接口源碼解析

    這篇文章主要介紹了Java中的BlockingQueue接口源碼解析,BlockingQueue接口表示阻塞隊列,是Java并發(fā)包中阻塞隊列的接口定義規(guī)范,阻塞隊列意味著對于該隊列的操作是線程安全的,當多個線程存放元素進入隊列或者從隊列中取出元素都是線程安全的,需要的朋友可以參考下
    2023-11-11
  • springboot vue完成發(fā)送接口請求顯示響應(yīng)頭信息

    springboot vue完成發(fā)送接口請求顯示響應(yīng)頭信息

    這篇文章主要為大家介紹了springboot+vue完成發(fā)送接口請求顯示響應(yīng)頭信息,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • SpringBoot自定義錯誤處理邏輯詳解

    SpringBoot自定義錯誤處理邏輯詳解

    這篇文章主要介紹了SpringBoot自定義錯誤處理邏輯,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-10-10
  • Java中Stream流Map分組方式詳細匯總

    Java中Stream流Map分組方式詳細匯總

    Stream將要處理的元素集合看作一種流,在流的過程中借助Stream?API對流中的元素進行操作,比如篩選、排序、聚合等,下面這篇文章主要給大家介紹了關(guān)于Java中Stream流Map分組方式的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 深入理解Java class文件格式_動力節(jié)點Java學(xué)院整理

    深入理解Java class文件格式_動力節(jié)點Java學(xué)院整理

    對于理解JVM和深入理解Java語言, 學(xué)習(xí)并了解class文件的格式都是必須要掌握的功課
    2017-06-06
  • 使用?EasyCode生成springboot+mybatis基礎(chǔ)程序的實現(xiàn)示例

    使用?EasyCode生成springboot+mybatis基礎(chǔ)程序的實現(xiàn)示例

    本文主要介紹了使用?EasyCode生成springboot+mybatis基礎(chǔ)程序的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java并發(fā)編程工具類JUC之ArrayBlockingQueue

    java并發(fā)編程工具類JUC之ArrayBlockingQueue

    類ArrayBlockingQueue是BlockingQueue接口的實現(xiàn)類,它是有界的阻塞隊列,內(nèi)部使用數(shù)組存儲隊列元素,通過代碼給大家說明如何初始化一個ArrayBlockingQueue,并向其中添加一個對象,對java并發(fā)編程工具類ArrayBlockingQueue相關(guān)知識感興趣的朋友一起看看吧
    2021-05-05

最新評論