Ejemplo de fragmento de sonda de ámbito de clase

Este ejemplo muestra cómo utilizar el fragmento en el ámbito de clase de una sonda.

En este ejemplo, una sonda cuenta el número de instancias creadas hasta ahora de todas las clases de paquetes que coinciden con el patrón comodín com.sample* e informa del porcentaje de creación de instancias.

El fragmento en el ámbito de clase declara un contador que aparece como un campo estático int-type de la clase en la que se compila el fragmento entry. El fragmento también declara un inicializador estático para la clase fragment que informa que la sonda se ha cargado. Tenga en cuenta que los elementos del fragmento en el ámbito de clase se construyen en la clase de sonda generada, no en las clases a las que se aplica la sonda. Para insertar campos estáticos o lógica de inicializador estático en las clases a las que se aplica una sonda, utilice fragmentos de sonda de tipo staticInitializer o defina un campo estático.

Esta sonda se define mediante las siguientes entradas en el editor de Probekit:
  • Código Java para fragmento en el ámbito de clase (seleccione Sonda en el panel de árbol para especificar este valor):

    static public int entry_counter = 0;
    static int counter = 0;
    static { System.out.println("[la sonda de ejemplo fragmentAtClassScope se ha cargado.]"); }

  • Destino (para especificar estos valores, seleccione Destino en el panel de árbol y pulse Editar):
    • Tipo destino: include
    • Paquete: com.sample* (aquí debe utilizar un nombre de paquete real).
    • Clase: *
    • Método: <init>
    • Signatura: *
  • Destino (para especificar estos valores, pulse Añadir y luego Editar en el panel de árbol):
    • Tipo destino: exclude
    • Paquete: *
    • Clase: *
    • Método: *
    • Signatura: *
  • Fragmento (seleccione Fragmento en el panel de árbol para especificar estos valores):
    • Tipo de fragmento: entry
    • Código Java:

      ++counter;
      if (counter % 100 == 0)
        System.out.println("[" + counter + " instancias de clases del paquete com.sample hasta ahora]");