Riflessione e Introspezione

Riflessione e Introspezione sono due caratteristiche comuni a molti linguaggi orientati ad oggetti.

Introspezione

L’introspezione è la capacità di un linguaggio di riconoscere il tipo di un oggetto a runtime.

La riflessione è il processo grazie al quale un programma può essere modificato durante la sua esecuzione in funzione di alcune caratteristiche astratte del proprio codice e del comportamento osservato durante l’esecuzione. Il programma ha a tutti gli effetti la possibilità di osservarsi e di modificare la propria struttura in funzione del proprio comportamento.

Java: elencare i metodi di una classe


try {
  Class c = Class.forName('java.lang.String');
  Method m[] = c.getDeclaredMethods();
  for (int i = 0; i < m.length; i++)
    System.out.println(m[i].toString());
  }
  catch (Throwable e) {
    System.err.println(e);
}

Ruby: elencare i metodi di una classe


String.methods.each{|m| puts m}

Elencare tutti gli oggetti allocati nell’Object Space a runtime


ObjectSpace.each_object(Class) { |x| puts x}

8 Dicembre 2007
Categorie: Ricerca, Linguaggi, Ruby

AddThis Social Bookmark Button

Articoli simili

Commenti

Comments are closed.