Je me suis mal exprimé alors : ce que Java apelle « reflect » est de l'introspection, pas de la reflexivité dans le sens entier du terme ("reflect" c'est limite du marketing dans ce cas là).
Pour avoir de la reflexivité il faut pouvoir agir sur les objets fournis par java.lang.reflect mais aussi les modifier. C'est-à-dire faire des choses que permettent OpenJava par exemple mais à l'exécution pas à la compilation.
La dernière fois que j'ai touché à Java on ne pouvait pas modifier la structures des objets du langages comme ajouter une nouvelle méthode à une classe, creer une nouvelle classe, changer l'arbre d'héritage, etc.
C'est pour ça que je disais que Java n'a pas de reflexivité, contrairement à Ruby (qui en a pas mal) et sans doute Python.
Je résume : accès en "read-only" => introspection, accès en "read/write" => reflexivité.
Bon, si maintenant Java possède un peu de rexlexivité, je ferais amende honorable et j'irai propager la bonne nouvelle.
[^] # Re: hum
Posté par MrTout . En réponse à la dépêche Eclipse compilé en natif.. Évalué à 3.
Pour avoir de la reflexivité il faut pouvoir agir sur les objets fournis par java.lang.reflect mais aussi les modifier. C'est-à-dire faire des choses que permettent OpenJava par exemple mais à l'exécution pas à la compilation.
La dernière fois que j'ai touché à Java on ne pouvait pas modifier la structures des objets du langages comme ajouter une nouvelle méthode à une classe, creer une nouvelle classe, changer l'arbre d'héritage, etc.
C'est pour ça que je disais que Java n'a pas de reflexivité, contrairement à Ruby (qui en a pas mal) et sans doute Python.
Je résume : accès en "read-only" => introspection, accès en "read/write" => reflexivité.
Bon, si maintenant Java possède un peu de rexlexivité, je ferais amende honorable et j'irai propager la bonne nouvelle.