Campos estáticos de sonda

El campo estático de una sonda inserta un campo estático nuevo en cada clase Java que contiene como mínimo un método instrumentado por la sonda. Este campo estático es accesible para los fragmentos de sonda y puede utilizarse para almacenar información dentro de las clases sondeadas.

El término campo estático hace referencia a un campo de la clase que se declara como estático. A veces se denomina variable estática, campo de clase o variable de clase (en contraposición a variable de instancia).

La especificación de un campo estático es opcional.

Un campo estático tiene la siguiente propiedad:
Propiedad Descripción
type Obligatoria. La propiedad type especifica la serie de tipo Java del nuevo campo. La serie debe ser un nombre de clase Java totalmente calificado; por ejemplo, java/lang/StringBuffer. La serie de tipo debe representar un tipo de clase normal, no un tipo primitivo ni un tipo de matriz. La clase indicada debe tener un constructor por omisión (es decir, un constructor que no acepte argumentos) que sea accesible para la clase sondeada.
Cuando se utiliza un campo estático, el nuevo campo estático se inicializa en la clase sondeada mediante una llamada al constructor por omisión correspondiente a su tipo. Por ejemplo, añadir un campo estático de tipo StringBuffer es como añadir el siguiente código a la clase que está fuera de todos los métodos:
static private StringBuffer fieldName = new StringBuffer();

La llamada de inicialización se realiza al principio del inicializador de clase de la clase sondeada. Si la clase no tiene un inicializador de clase, se creará uno. Si la sonda tiene un fragmento staticInitializer, el código del fragmento staticInitializer se ejecutará después de que se haya construido el campo estático.

Los fragmentos de sonda pueden utilizar el elemento de datos staticField para acceder al objeto al que hace referencia el campo estático. Los fragmentos pueden cambiar el estado del objeto al que hace referencia el campo estático, pero no pueden hacer que el campo estático haga referencia a un objeto distinto.

Una sonda sólo puede tener especificado un campo estático. Para utilizar la especificación de campo estático con el fin de almacenar más de un elemento en la clase sondeada, utilice un tipo de objeto compuesto, como por ejemplo ArrayList, HashMap o HashSet, o bien defina y utilice una clase nueva con la estructura de datos que necesite.

Ejemplo:

Para especificar un campo estático, pulse Sonda con el botón derecho del ratón en el panel de árbol del editor y, a continuación, pulse Nuevo > Campo estático. Especifique el tipo Java en el panel de edición.

Entrada de un campo estático de sonda. La entrada es: /java/lang/StringBuffer

Consulta relacionada
El tipo de fragmento de sonda staticInitializer
Información relacionada
Ejemplo de sonda staticField y staticInitializer