I am loading a java Class from a jar file using an URLClassLoader.
String className = ...
File jarFile = ...
ClassLoader parent = this.getClass().getClassLoader();
ClassLoader urlLoader = new URLClassLoader(new URL[] { jarFile.toURI().toURL() }, parent);
Class <?> loadedClass = urlLoader.loadClass(className);
This works so far but all the member of loadedClass (like declaredMethods, etc…) are null after the loading. I guess that is the intended behavior and all the members are loaded dynamically when used. Is there a way to initialize them all right away?
How do you access the members of
loadedClass? The private fields will get initialized the first time the corresponding getter method is called, so you should never get anullfrom these getters.If you do use these getters and they work as expected, why would you want to initialize all of the members eagerly? This seems just like unnecessary work.