java根据传入参数不同调用不同的方法,求高手支妙招!
关注:138 答案:5 mip版
解决时间 2021-02-02 20:33
提问者我微笑着泪滴
2021-02-02 07:00
比如invokeMethod(String method); 传入“1”调用method1(),传入“2”调用method2()...
要求:最好不使用反射,不使用if else ,不使用switch case
可以考虑抽象类,接口等。。。
最佳答案
二级知识专家敌不过时间逃不过距离
2021-02-02 07:49
使用反射可以如下:
public class Test {
public void method1() {
System.out.println("method1() invoked");
}
public void method2() {
System.out.println("method2() invoked");
}
public void method3() {
System.out.println("method3() invoked");
}
public void invokeMethod(String methodName) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
Test.class.getMethod(methodName,null).invoke(this,null);
}
public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
new Test().invokeMethod("method2");
}
}不过按你的要求不知道怎么做
全部回答
1楼口袋里的自由
2021-02-02 11:34
这题目,额。。。。
2楼寄出个心动
2021-02-02 10:14
bad requirement.
invokeMethod("method"+1);
invokeMethod("method"+2);
3楼繁华初下,心已空
2021-02-02 08:59
使用switch语句
4楼错过の花开
2021-02-02 08:10
比较常用或者通用的方式是采用if语句。
语法:
if (逻辑条件判断)
{
语句块
}else if(逻辑条件判断){
}else{
}举例:
public class A{//定义一个类A
public void s1(){//定义方法s1
}
public void s2(){//定义方法s2
}
public void s3(){//定义方法s3
}
public void show(int a){//定义一个方法show
if(a==1){//如果a等于1
s1();//调用方法s1
}else if(a==2){
s2();//调用方法s2
}else{
s3();//调用方法s3
}
}
}
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
→点此我要举报以上信息!←
推荐资讯
大家都在看