Este ejemplo muestra el uso del elemento de datos staticField y del fragmento de prueba StaticInitializer.
En este ejemplo, una prueba hace un seguimiento de cuándo se crean las instancias de una clase. Si una instancia se crea después de más de un segundo de la instancia anterior de dicha clase, la prueba escribe un mensaje de anotaciones.
Esta prueba utiliza staticField para crear un nuevo campo estático en cada clase probada. Por comparación, la utilización de fragmentAtClassScope para declarar el campo Date daría como resultado una única instancia de Date que aparece en la clase generada que contiene los fragmentos de prueba, sea cual sea el número de clases a las que se aplica la prueba. Puede hacerlo si desea hacer un seguimiento del retardo entre la creación de instancias de cualquier clase probada, en lugar de hacer un seguimiento del retardo entre la creación de instancias de cada clase probada.
Para utilizar este ejemplo de código, cambie package="com.sample*" en el objeto 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> <target type="include" package="com.sample*" method="<init>" /> <target type="exclude" package="*" /> <staticField type="java.util.Date"/> <fragment type="entry"> <data name="lastInstanceDate" type="staticField"/> <data name="clname"/> <code> java.util.Date d = new java.util.Date(); long now = d.getTime(); long prev = lastInstanceDate.getTime(); if (prev != 0 && prev + 1000 < now) { System.out.println("[" + clname + " instancia transcurrido > 1 segundo]"); } lastInstanceDate.setTime(now); </code> </fragment> <fragment type="staticInitializer"> <data name="lastInstanceDate" type="staticField"/> <data name="clname"/> <code> lastInstanceDate.setTime(0); System.out.println("[" + clname + " clase cargada]"); </code> </fragment> </probe> </probekit>
Tema padre: Ejemplos de Probekit
Consulta relacionada
El objeto de prueba StaticField
El fragmento de prueba staticInitializer