类加载器不能替换已经加载的类。
loadClass将返回现有
Class实例的引用。
您必须实例化一个新的类加载器,并使用它来加载新类。然后,如果要“替换”该类,则必须扔掉该类加载器并创建另一个新的类加载器。
针对您的评论:做类似的事情
ClassLoader cl = new UrlClassLoader(new URL[]{pathToClassAsUrl});Class<?> compiledClass = cl.loadClass(stringClass);
该类加载器将使用“默认委托父类ClassLoader”,并且您必须注意,该类(由其完全限定的类名标识)尚未加载,并且不能由该父类加载器加载。因此,“
pathToClassAsUrl”不应放在类路径上!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)