Ett exempel på probfragment i klassomfattning

I det här exemplet demonstreras användningen av fragment i klassomfattningen i en prob.

I exemplet används en prob till att räkna antalet förekomster som har skapats av alla klasser i paket som överensstämmer med jokerteckenmönstret com.sample* och att rapportera var hundrade förekomst som har skapats.

Med fragment i klassomfattning deklareras en räknare som visas som ett statiskt int-typfält i den klass som entry-fragmentet kompileras till. Med fragmentet deklareras även en statisk initierare för den fragment-klass som används till att rapportera att proben är inläst. Lägg märke till att objekten i fragmentet i klassomfattningen är inbyggt i den genererade probklassen, inte i de klasser som proben används på. Om du vill infoga kod för statiska fält eller statiska initierare i klasser som en prob används på, använder du probfragment av typen staticInitializer eller så definierar du ett statiskt fält.

Den här proben definieras av följande poster i Probekit-redigeraren:
  • Java-kod för fragment i klassomfattning (välj Prob i trädfönstret när du ska ange det här värdet):

    static public int entry_counter = 0;
    static int counter = 0;
    static { System.out.println("[fragmentAtClassScope-exempelprob har lästs in.]"); }

  • Mål (ange de här värdena genom att välja Mål i trädfönstret och sedan klicka på Redigera):
    • Måltyp: include
    • Paket: com.sample* (Använd ett faktiskt paketnamn här.)
    • Klass: *
    • Metod: <init>
    • Signatur: *
  • Mål (ange de här värdena genom att klicka på Lägg till och sedan på Redigera i redigeringsfönstret):
    • Måltyp: exclude
    • Paket: *
    • Klass: *
    • Metod: *
    • Signatur: *
  • Fragment (välj Fragment i trädfönstret när du ska ange de här värdena):
    • Fragmenttyp: entry
    • Java-kod:

      ++counter;
      if (counter % 100 == 0)
        System.out.println("[" + counter + " förekomster av klasser i com.sample-paket så här långt]");

Närliggande referens
Probfragment i klassomfattning