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