java - 如何将类转换为实例对象

标签 java reflection

看看我的代码....

    Class<?> c = Class.forName("PerformanceInvokeService");

    Method m = c.getDeclaredMethod("monthlyTestCal", new Class[] {
            String.class, Date.class });
    Object ret = m.invoke("PerformanceInvokeService", new Object[] {
            "some string", new Date() });
    System.out.println(ret);

我执行它并抛出异常

java.lang.IllegalArgumentException: object is not an instance of declaring class

我想,因为我没有创建 c 的实例(比如...new PerformanceInvokeService()) 而且我不知道如何创建它

有人帮忙吗?

对不起我的英语...

谢谢

最佳答案

如果 PerformanceInvokeService 有一个可访问的默认构造函数,您可以使用以下方法创建一个新实例:

Object instance = c.newInstance();

然后您可以将其传递给方法调用:

Object ret = m.invoke(instance, new Object[] { "some string", new Date() });

如果没有可访问的默认构造函数,那么您将必须找到一个可以通过反射使用的构造函数。

关于java - 如何将类转换为实例对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9714093/

相关文章:

java - 如何使用完整的本地 namespace 而不是前缀

java - Spring Boot 加载 orm.xml

java - 反射和数组

language-agnostic - 用反射注册派生类,好还是坏?

c# - DataContractSerializer 的行为方式与 KnownTypes 和 Generics 混淆

java - 转换为不继承的类型

java - 填充数组列表的随机索引出现 NullPointerException?

java - 计算 Java EE 网络应用程序中用户数量的最佳方法

java - 如何在 Java 中创建一个泛型数组?

java - 我如何使用缓冲区读取器读取文件但使用java跳过注释