比方说有A,B,C,D四个类,都有静态方法alertMe();
我根据string是什么来调用哪个类的alertMe();
比方说String是"A",就调用A.alertMe();
是B,就调用B.alertMe();
我想问下,该怎么弄啊。以后我添加了其他类也不用修改了。
希望大家帮忙下,谢谢了

解决方案 »

  1.   


    1 public Object invokeStaticMethod(String className, String methodName,
     2             Object[] args) throws Exception {
     3     Class ownerClass = Class.forName(className);
     4 
     5     Class[] argsClass = new Class[args.length];
     6 
     7     for (int i = 0, j = args.length; i < j; i++) {
     8         argsClass[i] = args[i].getClass();
     9     }
    10 
    11     Method method = ownerClass.getMethod(methodName, argsClass);
    12 
    13     return method.invoke(null, args);
    14 }
      

  2.   

    网上反射的例子多的是,根据string找 类,拿到该类的实例,通过实例调用方法!
    2楼的已经给出了方法!
      

  3.   

    to closewbq:
    Object[] args里面放的是什么啊,
    args[i].getClass()是干什么的,得到类吗??