H5W3
当前位置:H5W3 > 其他技术问题 > 正文

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<Integer.valueOf(i);j++){
			 System.out.println(str);
		 /

本文地址:H5W3 » java反射拼接方法名动态执行方法实例

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址