繁体   English   中英

Java中的反射和ClassLoader

[英]Reflection and ClassLoader in Java

编译程序后,我需要在类路径中添加一个类。

然后,将ClassLoader与Java Reflection一起使用,如下代码:

Class NewUnit;
Constructor constructor;

ClassLoader myClassLoader = ClassLoader.getSystemClassLoader();

// Define a class to be loaded.
String classNameToBeLoaded = "monarchs_project.Axe";

NewUnit = myClassLoader.loadClass(classNameToBeLoaded);

constructor = NewUnit.getConstructor(int.class, int.class, int.class, int.class);

NewUnit newUnit  = (NewUnit) constructor.newInstance(1, 1, 1, 1);

Ax类的参数为int。

但这是行不通的。 方法getConstructor()不起作用。 谢谢。

int.class不是有效的类。 您需要在包装器类中使用Type静态变量,以获得原始类型的类对象。 您的getConstructor调用应如下所示。

构造函数= NewUnit.getConstructor(java.lang.Integer.TYPE,java.lang.Integer.TYPE,java.lang.Integer.TYPE,java.lang.Integer.TYPE);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM