Este exemplo demonstra o uso do item de dados staticField e o fragmento de probe staticInitializer.
No exemplo, o probe mantém a controle de 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, o probe gravará uma mensagem de registro.
A seguir está o que o probe faz:
- Utilizando a definição do campo estático, o probe cria um campo estático de tipo Date em cada classe com probe. O campo estático será inicializado chamando new Date();.
- No fragmento staticInitializer, o probe define a instância Data de uma classe com probe para "hora zero" (Janeiro de 1970) quando é carregado.
- No fragmento entry, o probe verifica quando a atualização anterior foi executada e emitirá um relatório se a atualização foi executada há mais de um segundo. (Por causa das regras de destino, o fragmento entry
é executado apenas em construtores).
- Finalmente, o probe atualiza o valor da instância Data para "agora."
O probe utiliza a definição do campo estático para criar um novo campo estático
em cada classe com probe. Em comparação, o uso de um fragmento no escopo de classe para declarar o campo Data resulta em uma instância única de Data que aparece na classe
gerada que mantém os fragmentos de probe, não importando para quantas classes o
probe é aplicado. 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.
Esse probe é definido pelas seguintes entradas no editor Probekit:
- Tipo de Java completo para campo estático (clique com o botão
direito do mouse em Probe na área de janela da árvore e clique em para
digitar este valor):
java.util.Date
- Destino (para digitar esses valores, selecione Destino na área de janela da árvore
e clique em Editar):
- Tipo de Destino: incluir
- Pacote: com.sample* (Utilize
um nome de pacote real aqui.)
- Classe: *
- Método: <init>
- Assinatura do Método: *
- Destino (para digitar esses valores, clique em Incluir e em Editar
na área de janela Editar):
- Tipo de Destino: excluir
- Pacote: *
- Classe: *
- Método: *
- Assinatura do Método: *
- Fragmento (selecione Fragmento na área de janela da árvore para
digitar esses valores):