gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:36:38 27 4
gpt4 key购买 nike

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

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

但是之后我发现我无法调用类中的一些方法。我无法使用 tuple.setName() 或其他方法。

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

最佳答案

您应该有一个可以将该类强制转换为的接口(interface):

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

如果做不到这一点,您需要继续使用反射:

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

关于java - Java中使用Class.forname()后如何声明一些方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18581897/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com