Oggetto di analisi StaticField

L'oggetto di analisi StaticField inserisce un nuovo campo statico in ogni classe Java analizzata. Questo campo statico è accessibile ai frammenti di analisi e può essere utilizzato per memorizzare le informazioni all'interno delle classi analizzate.

Per "campo statico" si intende un campo della classe dichiarato statico. Qualche volta viene definito "variabile statica", "campo di classe" o "variabile di classe" (contro "variabile di istanza").

L'oggetto StaticField è facoltativo.

L'oggetto StaticField include la seguente proprietà:
Proprietà Descrizione
type Obbligatorio. La proprietà type specifica la stringa di tipo Java per il nuovo campo. La stringa deve essere il nome di una classe Java specificato per esteso. Ad esempio: java.lang.StringBuffer. La stringa del tipo deve rappresentare un tipo di classe ordinaria, non un tipo primitivo o matrice. La classe nominata deve avere un costruttore predefinito che non prende argomenti, accessibile alla classe analizzata.
Quando si utilizza un oggetto StaticField, il nuovo campo statico viene inizializzato nella classe analizzata richiamando il costruttore predefinito per il suo tipo; simile all'aggiunta del seguente codice origine alla classe o allo scopo della classe:
static private type fieldName = new type();

La chiamata di inizializzazione viene effettuata all'avvio dell'inizializzatore della classe per la classe analizzata. Se la classe non dispone di un inizializzatore di classe, ne viene creato uno. Se l'analisi dispone di un frammento StaticInitializer, il codice di tale frammento verrà eseguito dopo la costruzione del campo statico.

I frammenti dell'analisi possono utilizzare l'elemento dati staticField per accedere all'oggetto al quale fa riferimento il campo statico. I frammenti possono modificare lo stato dell'oggetto al quale fa riferimento il campo statico, ma non possono fare in modo che il campo statico faccia riferimento ad un oggetto diverso.

Un'analisi può avere solo un oggetto StaticField. Per utilizzare StaticField per memorizzare più di un elemento nella classe analizzata, utilizzare il tipo di oggetto composto, ad esempio ArrayList, HashMap o HashSet oppure definire ed utilizzare una nuova classe con la struttura dati necessaria.

Esempio
<staticField type="java.util.Date"/>
<fragment type="staticInitializer">
   <data type="staticField" name="lastInstanceDate" />
   <code>
      . . . 
   </code>
</fragment>

Contenuto da
Oggetto Probe

Argomento principale: Riferimento elemento Probekit

Riferimenti correlati
Oggetto di analisi Data

Informazioni correlate
Esempio di staticField e staticInitializer

Clausole di utilizzo | Commenti
(C) Copyright IBM Corporation 2000, 2004. Tutti i diritti riservati.