我现在有一个类A,A中有一段初始化静(static)态区域,A中若干重要static方法,例如public static void doSth()。
我想在类B中,设定一个Map<Integer, String> classNamesMap,里面是一个<整数参数,带包前缀的类名字符串>,如何通过指定指定一个整数参数,获取到类A,在B类中通过调用A.doSth();来完成指定的功能?谢谢。
补充一点:我不想获取到类A的实例。

解决方案 »

  1.   

    if("package.A".equal(smap.get(VALUE).equals))
        package.A.doSth();
      

  2.   

    Class a = Class.forName(classNamesMap.get(1));
    a.getDeclaredMethod("doSth",null).invoke(null, null);
      

  3.   

    if("package.A".equals(map.get(VALUE)))
        package.A.doSth();
      

  4.   

    利用反射去做:
    首先在B类中有个map容器,你通过索引取得A类的包名和类名
    用Class.forName()获取A类的类对象
    Class a = Class.forName(classNamesMap.get(1)); 
    然后用反射机制中调用类对象中的方法可实现:
    a.getDeclaredMethod("doSth",null).invoke(null, null);