Exemple de FragmentAtClassScope

Cet exemple explique comment utiliser le fragment de sonde FragmentAtClassScope.

Dans cet exemple, une sonde compte les instances créées de toutes les classes des modules correspondant au masque générique "com.sample*", et fait un rapport toutes les 100 créations d'instance.

Le "fragment au niveau de la classe" déclare un compteur qui apparaît comme un champ statique du type entier dans la classe dans laquelle le fragment entry est compilé. Le fragment déclare également un initialiseur statique pour la classe fragment qui rapporte que la sonde a été chargée. Notez que les éléments de la section fragmentAtClassScope sont créés dans la classe de sonde générée, et non dans les classes auxquelles la sonde s'applique. Pour insérer des champs statiques ou une logique d'initialiseur statique dans des classes auxquelles une sonde s'applique, utilisez les objets staticField et staticInitializer.

Pour utiliser cet exemple de code, changez package="com.sample*" dans l'objet cible pour indiquer un nom de module réel.

Notez que pour utiliser les caractères & et < en XML, vous devez spécifier les entités de caractère &amp; et &lt;, comme indiqué dans l'exemple.

<?xml version="1.0" encoding="ASCII"?>
<probekit>
   <probe>
      <fragmentAtClassScope>
         static public int entry_counter = 0;
         static int counter = 0;
         static { System.out.println("[l'exemple de sonde fragmentAtClassScope a été chargé.]"); }
      </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 de classes dans le module com.sample jusqu'à présent]");
         </code>
      </fragment>
   </probe>
</probekit>

Sujet parent : Exemples de Probekit

Référence associée
L'objet de sonde FragmentAtClassScope

Conditions d'utilisation | Commentaires
(C) Copyright IBM Corporation 2004. All Rights Reserved.