2016-06-17 4 views
-1

Ich überschreiben toString-Methode, um Mitglieder meiner Klasse auszudrucken. Was ist das übliche Format, das von großen Projekten verwendet wird ... classname(): variable name1 = variable value1 Komma getrennt?Wie sollte toString wie beim Debuggen/Loggen von Klassen/Objekten formatiert werden?

Alle Links zu einigen Open Source-Code wäre toll.

Auch sieht es aus wie .NET tatsächlich spezifische Methode für diese Aufgabe hat:

[DebuggerDisplay("{Name} [date={Date}, value={Value}]")] 
public class MyClass { 

in Java, CustomClass.toString für die Anmeldung verwendet wird?

+0

Die meisten IDEs, die ich verwendet habe, haben eine automatisierte toString-Deklaration. In der Regel ist es beim Debuggen ausreichend, wenn Sie die Informationen in einem lesbaren Format abrufen. – Compass

Antwort

0

Es hängt vollständig von der Klasse ab, und was Sie für relevant halten.

Da Debugger Ihnen alle Felder und ihre Werte anzeigen können, brauchen Sie dafür toString() nicht wirklich. Es sollte stattdessen eine Zusammenfassung der relevanten Informationen, je nach dem beabsichtigten Zweck sein.

Beispiel: Eine Person Klasse enthält Felder wie id, firstName, lastName, phoneNumber, addressLine1, addressLine2, city, state, zipcode.

Ist es relevant, alle diese Werte im toString() Ergebnis anzuzeigen? Wenn ja, ein Format wie folgt verwenden:

Person[id=1,firstName=John,lastName=Doe,phoneNumber=555-555-0127,addressLine1=123 Main St.,city=Queens,state=NY,zipcode=11354] 

jedoch denken über das Ergebnis, wenn Sie einen List<Person> haben:

[Person[id=1,firstName=John,lastName=Doe,phoneNumber=555-555-0127,addressLine1=123 Main St.,city=Queens,state=NY,zipcode=11354], Person[id=2,firstName=Jane,lastName=Smith,...]] 

Es wäre für solche Anwendungen besser sein, wenn die toString() Methode einfach helfen identifizieren die Objekte, z nur Name (erste + letzte) und vielleicht id:

[John Doe (1), Jane Smith (2)] 

So, wie ich am Anfang gesagt: Es hängt davon ab.

0

Der Zweck der überschreiben der toString-Klasse besteht darin, es zu formatieren, wie Sie es wollen. Ja, das Format ist normalerweise ein Objekt- oder Klassenname mit einer durch Kommas getrennten Liste aller Felder, die mit einem zugehörigen Namen für die Felder angezeigt werden sollen (z. B. "date = 'datevalue"). toString ist ein sehr nützliches Debugging-Tool, wenn Sie die Methode zum Anzeigen der Variablen schreiben, die Sie testen.

Verwandte Themen