Esempio probe di frammento nell'ambito della classe

Questo esempio illustra come utilizzare il frammento nell'ambito della classe in un probe.

Nell'esempio, un probe conteggia il numero di istanze create per tutte le classi in pacchetti che corrispondono al modello con carattere jolly com.sample* e riporta la creazione di ogni centesima istanza.

Il frammento nell'ambito della classe dichiara un contatore che viene riportato come campo statico int-type nella classe in cui il frammento entry viene compilato. Il frammento dichiara, inoltre, un inizializzatore statico per la classe fragment per indicare che il probe è stato caricato. Osservare che gli elementi contenuti nella sezione frammento nell'ambito della classe, vengono creati nella classe del probe generata, non nelle classi a cui si applica il probe. Per inserire la logica dei campi statici oppure dell'inizializzatore statico nelle classi a cui si applica un probe, utilizzare i frammenti probe di tipo staticInitializer, o definire un campo statico.

Questo probe è definito dalle seguenti voci nell'editor Probekit:
  • Codice Java per Frammento nell'ambito della classe (per immettere questo valore, selezionare Probe nel riquadro della struttura ad albero):

    static public int entry_counter = 0;
    static int counter = 0;
    static { System.out.println("[fragmentAtClassScope sample probe has loaded.]"); }

  • Destinazione (per immettere questi valori, selezionare Destinazione nel riquadro della struttura ad albero, quindi scegliere Modifica):
    • Tipo di destinazione: include
    • Pacchetto: com.sample* (Utilizzare il nome di un pacchetto esistente).
    • Classe: *
    • Metodo: <init>
    • Firma: *
  • Destinazione (per immettere questi valori, scegliere Aggiungi, quindi Modifica nel riquadro di modifica):
    • Tipo di destinazione: exclude
    • Pacchetto: *
    • Classe: *
    • Metodo: *
    • Firma: *
  • Frammento (per immettere questi valori, selezionare Frammento nel riquadro della struttura ad albero):
    • Tipo di frammento: entry
    • Codice Java:

      ++counter;
      if (counter % 100 == 0)
        System.out.println("[" + counter + " instances of classes in com.sample package so far]");