Statiska probfält

Med probens statiska fält infogas ett nytt statiskt fält i alla Java-klasser som innehåller minst en metod som instrumenteras med proben. Det här statiska fältet kan accessas med probfragment och kan användas till att lagra information i de klasser där proben körs.

Med begreppet statiskt fält menas ett fält i en klass som har deklarerats som statiskt. Det här kallas ibland en statisk variabel, ett klassfält eller en klassvariabel (till skillnad från en förekomstvariabel).

Den statiska fältspecifikationen är valfri.

Ett statiskt fält har följande egenskap:
Egenskap Beskrivning
type Krävs. Med egenskapen type anges Java-typsträngen för det nya fältet. Strängen måste vara ett fullständigt Java-klassnamn, exempelvis: java/lang/StringBuffer. Typsträngen måste representera en vanlig klasstyp, inte en primitiv typ eller vektortyp. Den namngivna klassen måste ha en standardkonstruktor (alltså en konstruktor som inte har några argument) som kan accessas av den klass där proben körs.
När du använder ett statiskt fält initieras det nya statiska fältet i klassen där proben körs genom ett anrop till standardkonstruktorn för den typen. Om du t.ex. lägger till ett statiskt fält av typen StringBuffer är det som att lägga till följande kod i den klass som är utanför alla metoder:
static private StringBuffer fieldName = new StringBuffer();

Initieringsanropet görs i början av klassinitieraren för den klass där proben körs. Om det inte finns någon klassinitierare för klassen skapas en. Om proben har ett staticInitializer-fragment, körs staticInitializer-fragmentkoden efter att det statiska fältet har konstruerats.

Probfragment kan använda staticField-dataobjektet till att accessa det objekt som refereras med det statiska fältet. Fragment kan ändra status för det objekt som det statiska fältet refererar till, men de kan inte ändra det statiska fältet så att det refererar till ett annat objekt.

En prob kan endast ha ett angivet statiskt fält. Om du vill använda den statiska fältspecifikationen till att lagra fler än ett objekt i klassen där proben körs, använder du en sammansatt objekttyp, t.ex. ArrayList, HashMap eller HashSet, eller så definierar och använder du en ny klass med den datastruktur som du behöver.

Exempel:

Om du vill ange ett statiskt fält högerklickar du på Prob i redigerarens trädfönster och klickar sedan på Nytt > Statiskt fält. Ange Java-typen i redigeringsfönstret.

En post för ett statiskt probfält. Posten är: /java/lang/StringBuffer

Närliggande referens
Probfragmenttypen staticInitializer
Närliggande information
Ett probexempel på staticField och staticInitializer