java根据传入参数不同调用不同的方法,求高手支妙招!

比如invokeMethod(Stringmethod);传入“1”调用method1(),传入“2”调用method2()...要求:最好不使用反射,不使用ifelse... 比如invokeMethod(String method); 传入“1”调用method1(),传入“2”调用method2()...
要求:最好不使用反射,不使用if else ,不使用switch case
可以考虑抽象类,接口等。。。
展开
 我来答
woshidaniel
2015-11-11 · TA获得超过9241个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:937万
展开全部

比较常用或者通用的方式是采用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
      }
   }
}
百度网友e97013e
2014-04-04 · 超过18用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:41.1万
展开全部

使用反射可以如下:

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");
    }

}

不过按你的要求不知道怎么做

追问
不使用反射
追答
通过String来调用方法,不反射怎么调用?java中的方法调用 可以通过类(对象)或者反射,你这里是string, 要么就通过Class.forName().newInstance()得到对象,然后来调用,要么就通过反射。通过newInstance()得到对象一堆限制,要不通过Constructor还不是反射?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友299962d6c
2014-04-04
知道答主
回答量:43
采纳率:0%
帮助的人:17.4万
展开全部
Integer.parseInt(s)==1?method1():method2();
更多追问追答
追问
你是在逗我么?
追答
我其实也忘记了,很少用这个,我记得以前可以用类似三目运算的方式去做,我在项目里就曾经这么做过,你说不能用if else,所以我才想到了这个,就当你逗你吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我恨死你的
2014-04-04 · TA获得超过443个赞
知道小有建树答主
回答量:291
采纳率:42%
帮助的人:84.3万
展开全部
bad requirement.

invokeMethod("method"+1);
invokeMethod("method"+2);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiao邪恶3
2015-10-28 · TA获得超过153个赞
知道小有建树答主
回答量:314
采纳率:100%
帮助的人:66万
展开全部
使用switch语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式