Nun, Sie können eine Methode mit einem Varargs-Parameter schreiben und einfach schreiben:
%Vor%Es ist nicht ideal, aber es wird unter Umständen ausreichen. Es gibt keine Möglichkeit, alle lokalen Variablen automatisch von einer Methode zu übernehmen und sie trotzdem zu löschen.
Sie könnten eine Art Bytecode-Manipulation in Betracht ziehen (zB mit BCEL ), das könnte es tun ... aber es wäre so ziemlich hässlich.
Ich möchte etwas wie:
habenSystem.out.printLocals();
Es sollte auch großartig sein, etwas wie:
zu habenSystem.out.printMembersOf(someObjectInstance);
Fast jede Java-Klasse hat eine toString
-Methode. Sie überschreiben diese Methode, und Sie können eine Zeichenfolge abrufen, die das darstellt, nach dem Sie fragen.
Eclipse Helios wird neben anderen IDEs eine grundlegende toString
-Methode für Sie generieren.
ODER
System.out.println("var")
) ODER
Es ist nicht einfach, die Werte lokaler Variablen zur Laufzeit zu lesen, selbst wenn Sie ein Debugger sind. Wenn in Ihrer Klasse keine Debugsymbole vorhanden sind, können lokale Variablen auch dann nicht angezeigt werden, wenn Sie einen Debugger verwenden.
Die einfachste Lösung, um die Werte zu sehen, ist das Drucken mit System.out.println()
oder die Verwendung der Protokollierung ( slf4j ).
Wenn Sie lokale Variablen zur Laufzeit ohne Änderung des Codes verwenden möchten, können Sie AOP (Aspect- orientierte Programmierung). Oder Sie können dieselbe API verwenden, die ein Debugger verwendet , um die laufende VM zu untersuchen.
Tags und Links java local-variables