跨类加载器进行转换?
2022-09-01 11:39:57
我该怎么做:
class Foo {
public static Foo get() throws Exception {
ClassLoader cl = new URLClassLoader(new URL[]{"foo.jar"}, null); // Foo.class is in foo.jar
return (Foo)cl.loadClass("Foo").newInstance(); // fails on class cast
}
}
我需要的是让 JVM 将 cl 中的 Foo 实例视为来自执行代码的类加载器的 Foo 实例。
我见过这些方法,它们都不适合我(上面的例子是一个玩具的例子):
- 由类装入器装入类(或单独的接口),该类装入器是调用代码和创建的类装入器的父级
- 序列化和反序列化对象。