[英]Java reflection - classloader detecting moved class in old and new package
[英]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.