从String创建类的实例,并在Java中调用该类中的方法

时间:2013-12-19 18:26:07

标签: java

如何从字符串中创建类的实例ie.class name将作为字符串传递,并且还要调用方法(方法没有任何参数)。

例如,类名为TEST的方法有1)GetData 2)GetAddtionof2numbres等...

我想使用变量传递类名TEST。

  String className = "TEST";

我尝试过反复尝试,例如使用

Class cls = Class.forName(className);
object o = cls.newinstance();

但无法获取/访问该类中的方法。

当我从类中获取方法名称时,我会将它们与文本文件中的名称存储进行比较,并通过在运行时创建类的实例来在该类中运行该方法。

任何人都可以帮助我吗

提前致谢

我试过下面的

String className = "test.t456"; 
Class c = Class.forName(className);
Object obj = c.newInstance();
Method[] method = c.getDeclaredMethods();

        for(Method m : method)
        {
            System.out.println(m.getName());

        }

能够在控制台中打印方法名称。现在如何通过创建该类的实例来运行这些方法。?

1 个答案:

答案 0 :(得分:0)

我建议您先阅读this

但是要回答你的问题,你可以这样做:

String className = <Your class name>; 
        try {
            Class c = Class.forName(className);
            Object obj = c.newInstance();
            Method methodToInvoke = obj.getClass().getMethod(<your method name>, <your method arg types>);
            methodToInvoke.invoke(obj, <arguments>);
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchMethodException | SecurityException | IllegalArgumentException | InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }