我发现我的代码是在不同的类加载器上创建类的,具体取决于我从哪里调用它。我通过执行以下 *** 作解决了这个问题:
try { Class.forName("MyClass");} catch(ClassNotFoundException e) { ClassPool pool = ClassPool.getDefault(); CtClass cc = pool.makeClass("MyClass"); cc.toClass(this.getClass().getClassLoader(), this.getClass().getProtectionDomain()); Class.forName("MyClass");}
toClass使用适当的Classloader
调用该方法确实成功了……我只是不确定如何控制所创建的类将在哪些classloader上可用,但是带有classloader参数的方法完全可以满足我的需求。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)