求助:根据不同参数使用不同方法 我觉得如果参数的数量不是那么多的话,可以考虑if else,毕竟反射会带来性能的消耗。另外楼主的这个问题还需要明确的是,参数不同的时候调用的方法名称也不同吗,还是只是方法重载了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 确实是因为参数比较多,可能有一两百个,所以觉得用不了ifelse...调用方法不是重载,每个方法需要的参数都一样,比如step2(String str,String [] str0)这样但是执行的内容都不一样……也没有什么公共的,可以提出来的部分谢谢作答 确实是因为参数比较多,可能有一两百个,所以觉得用不了ifelse...调用方法不是重载,每个方法需要的参数都一样,比如step2(String str,String [] str0)这样但是执行的内容都不一样……也没有什么公共的,可以提出来的部分谢谢作答但是我觉得楼上给你的答案还是使用ifelse了,因为你的方法名不同,反射还是需要方法名,还是需要确定哪个参数对应了哪个方法,并且那个链接里的文章也使用了ifelse语句 确实是因为参数比较多,可能有一两百个,所以觉得用不了ifelse...调用方法不是重载,每个方法需要的参数都一样,比如step2(String str,String [] str0)这样但是执行的内容都不一样……也没有什么公共的,可以提出来的部分谢谢作答但是我觉得楼上给你的答案还是使用ifelse了,因为你的方法名不同,反射还是需要方法名,还是需要确定哪个参数对应了哪个方法,并且那个链接里的文章也使用了ifelse语句哦,是这样的,我的参数都是一样的,所以就不用ifelse,固定的用一种反射,反射不同方法名就行了吧 确实是因为参数比较多,可能有一两百个,所以觉得用不了ifelse...调用方法不是重载,每个方法需要的参数都一样,比如step2(String str,String [] str0)这样但是执行的内容都不一样……也没有什么公共的,可以提出来的部分谢谢作答但是我觉得楼上给你的答案还是使用ifelse了,因为你的方法名不同,反射还是需要方法名,还是需要确定哪个参数对应了哪个方法,并且那个链接里的文章也使用了ifelse语句哦,是这样的,我的参数都是一样的,所以就不用ifelse,固定的用一种反射,反射不同方法名就行了吧那你如何确定使用的是哪一个方法呢?比如你需要在参数为1的时候使用方法1,getDeclaredMethod方法的参数就是为方法1的名称,参数为2,参数就为方法2的名称,这样的话怎么可能固定一种放射呢?除非你的参数就是你的方法名 import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Arrays;public class Aloha { public void print() { } public void step1(String[] args) { System.out.println("step1(): " + Arrays.toString(args)); } public void step2(String[] args) { System.out.println("step2(): " + Arrays.toString(args)); } public void step3(String[] args) { System.out.println("step3(): " + Arrays.toString(args)); } public static void test(String argsString) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { String[] args = argsString.split(","); Method method = Aloha.class.getDeclaredMethod("step" + args.length, String[].class); method.invoke(new Aloha(), new Object[] {args}); } public static void main(String[] args) throws Exception { test("1"); test("1, 2"); test("1, 2, 3"); }} itext生成的表格内容如何居中,有高手会吗?小弟在此等候 static 方法的问题 奇怪的问题,急死人急死人急死人 简单问题,需要解答4 application如何与jsp通信? 各位大哥哥一个比较复杂的查询问题各位大哥哥帮帮忙小妹在此先谢谢了在线等待QQ25096679 java新手一起学习,能留下QQ吗 about Graphics class? 怎么样改变Box的背景颜色(Java ,JBuilder)? 哪里有share/free的java class的详细分类索引????要求全面,详细.谢谢! 新人学java遇到一个问题 求助 新手怎么理解实例对象
但是执行的内容都不一样……也没有什么公共的,可以提出来的部分谢谢作答
但是执行的内容都不一样……也没有什么公共的,可以提出来的部分谢谢作答
但是我觉得楼上给你的答案还是使用ifelse了,因为你的方法名不同,反射还是需要方法名,还是需要确定哪个参数对应了哪个方法,并且那个链接里的文章也使用了ifelse语句
但是执行的内容都不一样……也没有什么公共的,可以提出来的部分谢谢作答
但是我觉得楼上给你的答案还是使用ifelse了,因为你的方法名不同,反射还是需要方法名,还是需要确定哪个参数对应了哪个方法,并且那个链接里的文章也使用了ifelse语句
哦,是这样的,我的参数都是一样的,所以就不用ifelse,固定的用一种反射,反射不同方法名就行了吧
但是执行的内容都不一样……也没有什么公共的,可以提出来的部分谢谢作答
但是我觉得楼上给你的答案还是使用ifelse了,因为你的方法名不同,反射还是需要方法名,还是需要确定哪个参数对应了哪个方法,并且那个链接里的文章也使用了ifelse语句
哦,是这样的,我的参数都是一样的,所以就不用ifelse,固定的用一种反射,反射不同方法名就行了吧
那你如何确定使用的是哪一个方法呢?比如你需要在参数为1的时候使用方法1,getDeclaredMethod方法的参数就是为方法1的名称,参数为2,参数就为方法2的名称,这样的话怎么可能固定一种放射呢?除非你的参数就是你的方法名
import java.lang.reflect.Method;
import java.util.Arrays;public class Aloha {
public void print() { }
public void step1(String[] args) {
System.out.println("step1(): " + Arrays.toString(args));
} public void step2(String[] args) {
System.out.println("step2(): " + Arrays.toString(args));
} public void step3(String[] args) {
System.out.println("step3(): " + Arrays.toString(args));
} public static void test(String argsString) throws NoSuchMethodException,
InvocationTargetException, IllegalAccessException {
String[] args = argsString.split(","); Method method = Aloha.class.getDeclaredMethod("step" + args.length, String[].class);
method.invoke(new Aloha(), new Object[] {args});
} public static void main(String[] args) throws Exception {
test("1");
test("1, 2");
test("1, 2, 3");
}
}