如何从字符串中创建类的实例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());
}
能够在控制台中打印方法名称。现在如何通过创建该类的实例来运行这些方法。?
答案 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();
}