Reflexió (informàtica): diferència entre les revisions

Contingut suprimit Contingut afegit
m neteja i estandardització de codi
m Bot: Replace deprecated <source> tag and "enclose" parameter; canvis superficials
Línia 8:
* La '''[[intercessió (informàtica)|intercessió]]''', és la capacitat d'un programa de modificar el seu propi estat d'execució o d'alterar la seva pròpia interpretació o significat.
 
La introspecció és utilitzada per efectuar mesures de rendiment, monitorar els mòduls o depurar un programa. Està implementada en llenguatges com [[Smalltalk]] o [[Llenguatge Java|Java]] que proveeixen eines per conèixer la [[Classe (informàtica)|classe]] d'un objecte, els seus [[atribut]]s, els seus [[Mètode (informàtica)|mètodemètodes]]s, etc. La introspecció no existeix en llenguatges com el [[Llenguatge C|C]] o el [[Pascal (Llenguatge de programació)|Pascal]].
 
La intercessió permet a un programa evolucionar automàticament en funció del seu entorn. Aquesta propietat apareix als llenguatges com Smalltalk o [[Python]], però no la trobarem en llenguatges com Java.
Línia 43:
L'exemple següent està escrit en [[Llenguatge Java|Java]] :
 
<sourcesyntaxhighlight lang="Java">
// Sense usar la reflexió
Foo foo = new Foo();
foo.hello();
</syntaxhighlight>
</source>
 
<sourcesyntaxhighlight lang="Java">
// Usant la reflexió
Class cl = Class.forName("Foo");
Method method = cl.getMethod("hello", null);
method.invoke(cl.newInstance(), null);
</syntaxhighlight>
</source>
 
Els dos trossos de codi creen una instància de la classe ''Foo'' i criden el seu mètode ''hello''.