Pola static sond

Pole static sondy wstawia nowe pole static do każdej klasy Java zawierającej co najmniej jedną metodę instrumentowaną przez sondę. Pole static jest dostępne dla fragmentów sondy i może służyć do przechowywania informacji wewnątrz sondowanych klas.

Termin pole static oznacza pole klasy, które zostało zadeklarowane jako static. Czasami jest ono nazywane zmienną statyczną, polem klasy lub zmienną klasy (w odróżnieniu od zmiennej instancji).

Specyfikacja pola static jest opcjonalna.

Pole static ma następującą właściwość:
Właściwość Opis
type Atrybut wymagany. Właściwość type określa łańcuch typu Java dla nowego pola. Łańcuch musi być pełną nazwą klasy Java, na przykład: java/lang/StringBuffer. Łańcuch typu musi reprezentować zwykły typ klasy, a nie typ podstawowy lub typ tablicowy. Nazwana klasa musi mieć konstruktor domyślny (czyli konstruktor niepobierający argumentów) dostępny dla sondowanej klasy.
Podczas korzystania z pola static w sondowanej klasie następuje zainicjowanie nowego pola static wskutek wywołania domyślnego konstruktora odpowiedniego typu. Na przykład dodanie pola static typu StringBuffer jest równoważne dodaniu poniższego fragmentu kodu do klasy poza obrębem którejkolwiek z metod:
static private StringBuffer fieldName = new StringBuffer();

Wywołanie inicjujące jest wykonywane na początku inicjatora sondowanej klasy. Jeśli klasa nie ma inicjatora, zostanie on utworzony. Jeśli sonda zawiera fragment staticInitializer, kod fragmentu staticInitializer jest uruchamiany po skonstruowaniu pola static.

Korzystając z elementu danych staticField, fragmenty sondy mogą uzyskiwać dostęp do obiektu, do którego odwołuje się pole static. Fragmenty mogą zmieniać stan obiektu, do którego odwołuje się pole static, ale nie mogą powodować, aby pole static odwoływało się do innego obiektu.

Sonda może mieć określone tylko jedno pole static. Aby specyfikacja pola static umożliwiała przechowywanie więcej niż jednego elementu w sondowanej klasie, należy użyć złożonego typu obiektu (takiego jak ArrayList, HashMap lub HashSet) albo zdefiniować nową klasę z potrzebną strukturą danych i zastosować ją.

Przykład:

Aby wprowadzić pole static, należy kliknąć prawym przyciskiem myszy opcję Sonda w panelu drzewa edytora, a następnie kliknąć opcję Nowy > Pole static. Na koniec należy wprowadzić typ Java w panelu edycji.

Wpis dla pola static sondy. Wpis ma postać: /java/lang/StringBuffer

Informacje pokrewne
Fragment sondy typu staticInitializer
Informacje pokrewne
Przykład elementu danych staticField i sondy staticInitializer