© 1999-2003, Flemming Koch Jensen
Alle rettigheder forbeholdt
Reflections
 

Abstract:

I dette kapitel skal vi udforske mulighederne for dynamsik at "lære klasser at kende" under program-afviklingen, og på det grundlag anvende dem dynamisk.

Forudsætninger:

En gode forståelse af klassebegrebet.

 

 

Reflections giver populært sagt mulighed for at et program kan tage en klasse op i hånden, undersøge den og anvende den. Det er en form for dynamik jeg ikke har set i andre sprog, og er en udløber at et interpreter-baseret perspektiv på programafvikling. Med denne form for dynamisk erkendelse er det næste skridt selvmodificerende bytecode, men det kommer jo nok engang.
Før vi ser på mulighederne med Reflections skal vi studere det der gør klasser så objekt-agtige i Java, som de nu engang kan blive.
Reflections er samlet i den package der hedder java.lang.reflect. Den indeholder klasser der anvendes sammen med java.lang.Class. Class har nogle get-metoder der returnerer instanser af en del af klasserne i java.lang.reflect.
Vi vil starte med at se hvilke informationer vi kan få om klasser og hvordan disse informationer fortolkes. Dernæst vil vi studere mulighederne for at anvende disse informationer dynamisk.

 

2.1 Informationer

 

2.2 Anvendelse

x
x
Figur 3:
figur