2010-12-30 5 views
1

Ich arbeite derzeit an einer Java-Anwendung, die häufig primitive lange Werte für Zeitstempel verwendet. Es wäre großartig, wenn ich diese im Eclipse-Debugger sowohl als langen Wert als auch als formatierten Zeitstempel sehen könnte. Wenn die Zahl für einen vernünftigen Zeitstempel außerhalb des Bereichs liegt, wird sie möglicherweise nur als Zahl angezeigt. Der Abschnitt "Detail-Formatierer" der Eclipse-Einstellungen bietet nichts für Primitive, zumindest nicht das, was ich finden kann. Watch-Ausdrücke sind nicht sehr gut, weil sie für jede Klasse einen neuen Watch-Ausdruck benötigen, der einen primitiven langen Zeitstempel hat - die Arbeit ist es nicht wert. Kennt jemand eine andere Möglichkeit, einen langen Wert allgemein als formatierten Zeitstempel anzuzeigen? Danke für Ihre Hilfe.Wie kann ich im Eclipse-Debugger jeden einfachen langen Wert als formatiertes Datum anzeigen?

Byron

Antwort

1

Die beste Lösung kann die Anwendung ändern, so dass es stattdessen Date Objekte verwendet. Das sind im Grunde nichts anderes als ein Wrapper um eine long, die es die Semantik eines Zeitstempels gibt. Die Probleme, die Sie haben, sind die direkte Folge davon, keine solche Semantik zu haben, und niemand implementiert eine Möglichkeit, sie zu allen long Werten hinzuzufügen, weil diese allgemein nicht alle Zeitstempel sind.

+0

Der Grund, warum wir java.util.Date (oder einen beliebigen Timestamp-Wrapper) nicht verwenden, ist, dass wir einen Cache mit begrenzter Speicherzuweisung haben, der voll von Objekten ist, die überall Zeitstempel haben. Es ist viel platzsparender, primitive Longs zu verwenden, und für die Zeitstempel benötigen wir keine datums- oder zeitbezogenen Methoden, da die gesamte Verarbeitung durch steckbare Algorithmen erfolgt. Ich wünschte wirklich, Eclipse würde einfach einfache BeanShell-Haken für jede Standardansicht anbieten. BeanShell ist ein langsamer Performer, aber Eclipse ist schon so langsam, dass es unmöglich ein Problem sein könnte. –

1

können Sie schreiben Ihre own formatter einen beliebigen Wert/Objekt zu transformieren:

alt text

mit:

alt text

in jede Präsentation, die Sie wollen:

alt text


Da die OP Byron Hawkins Kommentare ist es ein Versuch, die aber zu einer Klasse zugeordnet werden können (und nicht eine Variable während debug wie eine Uhr expression), wie illustrated here:

alt text

So Es wird für jede Variable/Instanzen dieses Typs gültig sein.

+0

Danke für den Vorschlag, aber das ist ungefähr die gleiche Menge an Arbeit wie das Hinzufügen eines Watch-Ausdrucks für jedes Objekt. Es bleibt besser, als Ausdrücke zu beobachten, aber es ist immer noch eine große Anstrengung. –

Verwandte Themen