java字符串到类和调用方法

时间:2014-07-02 13:35:40

标签: java class

我有2个班级

Test.java whith code

public class Test {

public void main (String [] args)
{

System.out.println ("Call test");

}

}

第二类:MakeCall.Java在这个类中我有String变量:

String MakeCall =“Test”;

请帮助:如何将String转换为ClassName并调用方法main,如:MakeCall.main(args)。

谢谢!

3 个答案:

答案 0 :(得分:2)

您需要阅读Java反射:http://tutorials.jenkov.com/java-reflection/index.html

您需要的关键部分是

Class class = Class.forName("Test");

Method method = class.getMethod("main", String[].class);

method.invoke( null, new String[] {"arg1"} );

答案 1 :(得分:0)

首先,您必须知道包含该类的包的名称。如果您知道,可以尝试以下方法:

String className = packageName + ".Test";
Class cls = Class.forName(className);
cls.getMethod("main", String[].class).invoke(null);

请注意,如果该类在(默认)包中,那么您可以使用" Test" as className没有包名。

答案 2 :(得分:0)

替换为反射调用,您可以创建一个实例,然后像对象一样调用。例如

Class<Test> testClass = (Class<Test>) Class.forName("Test");
Test obj = testClass.newInstance();
obj.main(args);