Beispiel für 'FragmentAtClassScope'

Dieses Beispiel veranschaulicht die Verwendung des Sondenfragments FragmentAtClassScope.

In diesem Beispiel zählt eine Sonde die Anzahl der erstellten Instanzen aller Klassen in Paketen, die mit dem Platzhaltermuster "com.sample*" übereinstimmen, und meldet jede hundertste Instanzerstellung.

FragmentAtClassScope deklariert einen Zähler, der in einem statischen Feld int-type der Klasse erscheint, in die das Fragment des Typs entry kompiliert wird. Das Fragment deklariert außerdem einen statischen Initialisierungsoperator für die Klasse fragment, der meldet, dass die Klasse geladen wurde. Die Elemente im Abschnitt fragmentAtClassScope werden in der generierten Sondenklasse erstellt und nicht in den Klassen, auf die die Sonde angewendet wird. Wenn Sie statische Felder oder Logik für statische Initialisierungsoperatoren in Klassen einfügen möchten, auf die eine Sonde angewendet wird, verwenden Sie die Objekte staticField und staticInitializer.

Zur Verwendung dieses Beispielcodes müssen Sie package="com.sample*" im Target-Objekt so ändern, dass das Objekt auf den Namen eines tatsächlichen Pakets verweist.

Wenn Sie in XML die Zeichen & und < verwenden möchten, müssen Sie wie im Beispiel die Zeichenentitäten &amp; und &lt; angeben.

<?xml version="1.0" encoding="ASCII"?>
<probekit>
   <probe>
      <fragmentAtClassScope>
         static public int entry_counter = 0;
         static int counter = 0;
         static { System.out.println("[fragmentAtClassScope sample probe has loaded.]"); }
      </fragmentAtClassScope>
      <target type="include" package="com.sample*" method="&lt;init>" />
      <target type="exclude" package="*" />
      <fragment type="entry">
         <code>
            ++counter;
            if (counter % 100 == 0)
              System.out.println("[" + counter + " instances of classes in com.sample package so far]");
         </code>
      </fragment>
   </probe>
</probekit>

Übergeordnetes Thema: Probekit-Beispiele

Zugehörige Verweise
Sondenobjekt 'FragmentAtClassScope'

Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2004. Alle Rechte vorbehalten.