0

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

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

但在那之后,我发现我无法调用类中的某些方法。我不能使用 tuple.setName() 或其他方法。

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

4

1 回答 1

3

您应该有一个接口,您可以将该类转换为:

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

否则,您需要继续使用反射:

 Method setName = c.getMethod("setName", String.class);
 setName.invoke(tuple, "Bilbo");
于 2013-09-02T23:14:17.263 回答