Как я могу это сделать:
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 рассматривала экземпляр Foo из cl, как если бы он был экземпляром Foo из загрузчика классов исполняемого кода.
Я видел эти подходы, ни один из них мне не подходит (приведенный выше пример - игрушечный пример):
- Загрузите класс (или отдельный интерфейс) с помощью загрузчика классов, который является родителем как вызывающего кода, так и созданного загрузчика классов.
- Сериализовать и десериализовать объект.