Bonjour tout le monde,
Je joue actuellement avec le rechargement de classes à la volée. J'ai une interface 'DynObject' avec une méthode 'getTest():String'. Et un objet 'DynObjectImpl' que je modifie et qui est recompilé, rechargé à la volée et sur lequel je travaille via un Proxy :
Jusque la tout vas bien mais en réalité la classe que je compile à la volée est générée par JAXB. Mon objet compilé à la volée peux donc disposer de nouvelles méthodes non décrites dans l'interface 'DynObject'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 InvocationHandler handler = new InvocationHandler() { Logger logger = Logger.getLogger(); public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { logger.debug("%s is invoking %s with %s", proxy, method, args); T obj = currentClass.newInstance(); return method.invoke(obj, args); } }; T proxy = (T) Proxy.newProxyInstance( parentLoader, new Class[]{DynObject.class}, handler); return proxy; // .. Un peu plus loin System.out.println(proxy.getTest());
Or mon but est justement de pouvoir accéder à ces nouvelles méthodes qui ne seront que des accesseurs sur des attributs du bean dynamique.
Je viens donc vous déranger car il semblerais qu'il soit possible de faire ce que je veux mais je ne vois pas du tout comment le faire.
J'espère avoir été clair.
Merci de votre aide.
Partager