Zero

Zero
Zero

03 febrero 2005

Reflexión estructural

La reflexión estructural consiste en poder consultar atributos y métodos de un objeto (introspección), y además, poder cambiarlos.

Lo más complicado es permitir cambiar (es decir, recompilar) los métodos, y ésto supone que el compilador debe estar dentro de la máquina virtual, lo cuál supone una pequeña reorganización del código.

Con la nueva versión ya publicada en la web, se pueden hacer cosas así:


__this.addAttribute( "color", "black" )

__this.addAttribute( "doors", 4 )

reference args = VectorInstance.copy( "" )

__this.addMethod( "f", args )

__this.compileToMethod(

          __this.getMethodNumberByName( "f" ),

          "STR \"¡Hola!\"\nMSG System.console write __acc\nRET"

)