如何在Java中使用Class.forname()之后声明一些方法

时间:2013-09-02 23:10:46

标签: java reflection

我使用Class.forname()使用以下代码动态创建实例:

String className = "models." + category;
Class c = Class.forName(className);
Object tuple = c.newInstance();

但在那之后,我发现我不能在课堂上调用一些方法。我不能使用tuple.setName()或其他方法。

如何声明类c可以在java中调用某些方法?

1 个答案:

答案 0 :(得分:3)

您应该有一个可以将该类投射到的界面:

 MyInterface tuple =  (MyInterface) c.newInstance();
 tuple.setName("Bilbo");

如果失败,你需要继续使用反射:

 Method setName = c.getMethod("setName", String.class);
 setName.invoke(tuple, "Bilbo");