简体   繁体   English

如何从通过类加载器加载的 class 调用构造函数

[英]How to call constructor from class loaded via classloader

I use classloader to load a class from a jar, but I get a "NoSuchMethodException" exception when trying to call the default constructor, which does exist.我使用类加载器从 jar 加载 class,但是在尝试调用确实存在的默认构造函数时出现“NoSuchMethodException”异常。

The problem may to be that the loaded class is simply java.lang.Class?问题可能是加载的 class 只是 java.lang.Class?

How can I call the constructor?如何调用构造函数?

Class<?> JRXlsExporter = urlClassLoader.loadClass("net.sf.jasperreports.engine.export.JRXlsExporter");
String classname = JRXlsExporter.getName();     //   looks good... it's net.sf.jasperreports.engine.export.JRXlsExporter
Class myclass = JRXlsExporter.getClass();           // this might be a a problem, the class is java.lang.Class
Constructor constructor = myclass.getConstructor();        // throws  java.lang.NoSuchMethodException: java.lang.Class.<init>()

Your JRXlsExporter is a Class - you can call getConstructor on it:您的JRXlsExporterClass - 您可以调用getConstructor

Constructor constructor = JRXlsExporter.getConstructor();

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

相关问题 如何使用classLoader从加载的类中调用方法? - How to call a method from loaded class using classLoader? 如何用Java中的其他ClassLoader重新加载已加载的类? - How to reload a loaded class with different ClassLoader in Java? 如何声明由类加载器加载的 class 创建的 object - How to declare an object created by a class loaded by classloader 如何从使用类加载器创建的类中调用方法 - How to call a method from class created using classloader 由ClassLoader加载的两个类,它们不能互相调用 - Two Class Loaded by ClassLoader, They Can Not Call Each Other 如何从较高层次结构中的类访问较低层次结构中的类加载器加载的类 - How to access class loaded by classloader in lower hierarchy from class in higher up hierarchy 处理以前由ClassLoader使用Esper加载的类中的事件 - Processing Events from a Class that it was previously loaded by ClassLoader with Esper java访问另一个类加载器加载的类中的资源文件 - java access resource files from class loaded by another classloader 如何验证Java中的ClassLoader是否已加载.jar或类 - How to verify that a .jar or a class has been already loaded by the ClassLoader in Java 如何从子类构造函数调用超类的私有构造函数? - How to call private constructor of super class from child class constructor?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM