Das Package java.lang.instrument erlaubt das Instrumentieren von Klassen. Dies kann während des Ladens einer Klasse in die VM oder aber zu einem späteren Zeitpunkt für bereits geladene Klassen geschehen.
Viele Frameworks benutzen diese Technik, um Manipulationen an bestehenden Klassen vorzunehmen. Zu diesen Frameworks gehören etwa JPA-Provider, Visual-VM, EMMA und viele mehr.
Dieser Vortrag erläutert die Funktionsweise der Instrumentierung und zeigt an Beispielen den sinnvollen Einsatz. Auch nicht sinnvolle Beispiele, wie etwa das Ändern von JUnits assert-Methoden, sind einfach zu realisieren, um so alle Unit-Tests bestehen zu können.