Este exemplo demonstra o uso do item de dados staticField e do fragmento de sondagem StaticInitializer.
Neste exemplo, uma sondagem acompanha quando as instâncias de uma classe são criadas. Se uma instância for criada mais de um segundo após a instância anterior daquela classe, a sondagem gravará uma mensagem de log.
Essa sondagem utiliza staticField para criar um novo campo estático em cada classe sondada. Em comparação, utilizar fragmentAtClassScope para declarar o campo Data resultará em uma única instância de Data aparecendo na classe gerada que contém os fragmentos de sondagem, independente de quantas classes a sondagem se aplica. Você poderá fazer isso se desejar rastrear o retardo de tempo entre a criação de instâncias de qualquer classe sondada, em vez de rastrear o retardo entre a criação de instâncias de cada classe sondada.
Para utilizar esse código de exemplo, altere package="com.sample*" no objeto de destino para que se refira a um nome de pacote real.
Observe que para utilizar os caracteres & e < em XML, você deve especificar as entidades dos caracteres & e <, conforme mostrado no exemplo.
<?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 + " instance after > 1 second]");
}
lastInstanceDate.setTime(now);
</code>
</fragment>
<fragment type="staticInitializer">
<data name="lastInstanceDate" type="staticField"/>
<data name="clname"/>
<code>
lastInstanceDate.setTime(0);
System.out.println("[" + clname + " class loaded]");
</code>
</fragment>
</probe>
</probekit>
Tópico-pai: Referência do Kit de Sondagem
Referência Relacionada
O Objeto de Sondagem StaticField
O Fragmento de Sondagem staticInitializer