Bonjour,
J'essaye de comprendre le fonctionnement d'une partie de lambdaj (ou encore d'EasyMock 2) mais je bloque.
Ces frameworks arrivent à créer des proxys dynamiques sur des classes et non sur des interfaces.
Avec la classe java.lang.reflect.Proxy fournit par java, il est possible de créer un proxy dynamique sur une interface comme ceci:
Jusqu'à là, je suis. Mais, Lambdaj arrive à créer un proxy sur un objet sans interface pour conserver les invocations faite sur cet objet pour ensuite les rappeler. (Ici Personne est une classe héritant seulement de Object)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(), new Class[] { Foo.class }, handler);
Je trouve ce système très intéressant car il permet de conserver un typage, mais je suis dans l'incapacité de le comprendre, ce qui est très frustant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<Personne> lstPersonnesTries = sort( lstPersonnes, on( Personne.class ).getAge() );
Est-ce qu'il y aurait une âme charitable pouvant m'expliquer comment ces frameworks fonctionnent?
Merci d'avance.
Partager