Este ejemplo muestra cómo utilizar el fragmento de sonda FragmentAtClassScope.
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 de la sección fragmentAtClassScope se construyen en la clase de sonda generada y 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 los objetos staticField y staticInitializer.
Para utilizar este código de ejemplo, cambie package="com.sample*" en el objeto de destino para que haga referencia a un nombre de paquete real.
Tenga en cuenta que para utilizar los caracteres & y < en XML, debe especificar las entidades de tipo carácter & y <, como se muestra en el ejemplo.
<?xml version="1.0" encoding="ASCII"?> <probekit> <probe> <fragmentAtClassScope> static public int entry_counter = 0; static int counter = 0; static { System.out.println("[Se ha cargado la sonda de ejemplo fragmentAtClassScope.]"); } </fragmentAtClassScope> <target type="include" package="com.sample*" method="<init>" /> <target type="exclude" package="*" /> <fragment type="entry"> <code> ++counter; if (counter % 100 == 0) System.out.println("[" + counter + " instancias de clases del paquete com.sample hasta ahora]"); </code> </fragment> </probe> </probekit>
Tema principal: Ejemplos de ProbeKit
Referencia relacionada
El objeto de sonda FragmentAtClassScope