JavaRush /Java-Blog /Random-DE /10 Tipps zum Überschreiben der toString()-Methode in Java...
Ku6ep
Level 35

10 Tipps zum Überschreiben der toString()-Methode in Java (Teil 1)

Veröffentlicht in der Gruppe Random-DE
10 Tipps zum Überschreiben der toString()-Methode in Java – ToStringBuilder Netbeans Eclipse 10 Tipps zum Überschreiben der toString()-Methode in Java (Teil 1) - 1

Java toString-Methode

toStringDie Methode in Java wird verwendet, um klare und ausreichende Informationen über ein Objekt ( Object) in einer für Menschen lesbaren Form bereitzustellen. Das richtige Überschreiben von Methoden toStringkann beim Protokollieren und Debuggen eines Java-Programms hilfreich sein, indem es wertvolle und wichtige Informationen bereitstellt. Da toString()sie in einer Klasse definiert ist java.lang.Objectund ihre Standardimplementierung nicht viele Informationen bereitstellt, empfiehlt es sich immer, diese Methode in einer Nachfolgeklasse zu überschreiben. Wenn Sie eine wichtige oder allgemeine Klasse vom Typ „ or“ erstellen Order, überschreiben Sie in Java immer „ equals “, „hashCode“ , „compareTo “ und „Methoden“. Standardmäßig erzeugt die Implementierung eine Ausgabe in der Form . In unserem Beispiel gibt die Klassenmethode beispielsweise test.Country@18e2b22 aus, wobei 18e2b22 der Hash-Code des Objekts in Hexadezimalzahl ist. Wenn Sie die Methode hashCode aufrufen, wird 260943370 zurückgegeben Dezimaläquivalent von 18e2b22. Diese Informationen sind bei der Suche nach einem Problem nicht besonders nützlich. Schauen wir uns ein Beispiel aus dem wirklichen Leben an, in dem Sie ein Problem in Ihrer Netzwerkverbindung finden müssen. Für den Fall, dass Sie wissen möchten, zu welchem ​​Host und Port Ihr System eine Verbindung herstellen möchte, und ob oder nur die Standardinformationen gedruckt werden , wird dies der Fall sein Es ist unmöglich, sich das eigentliche Problem vorzustellen, aber mit einer überschriebenen Implementierung können sie nützliche Informationen wie Hostnamen und Portnummer liefern. In diesem Java-Tutorial geben wir anhand von Codebeispielen einige Tipps zum Überschreiben von Methoden. TradeEmployeetoStringtoStringpackage.class@hashCodetoString()toString()CountrySocketServerSockettoStringtoStringtoString

So überschreiben Sie die toString-Methode in Java:

Druckt das formatierte Datum (d. h. Tag/Monat/Jahr) anstelle des Rohwerts. Dies ist ein sehr nützlicher Hinweis beim Überschreiben einer Java-Methode toString. Die reguläre toString()Klasse java.util.Dategibt kein formatiertes Datum aus und enthält viele Details, die nicht immer benötigt werden. Wenn Sie ein partielles DateFormat verwenden, d. h. dd-MM-yy in Ihrer Anwendung, dann möchten Sie auf jeden Fall dieses Format anstelle des Standardformats sehen. Die IDE generiert normalerweise keine formatierte Ausgabe Dateund das müssen Sie selbst tun, aber es lohnt sich. Weitere Informationen zur Formatierung in Java finden Sie unter So drucken Sie das Datum im Format ddMMyyDate in Java. Sie können hierfür auch die SimpleDataFormat- Klasse oder die Joda Date-Time-Bibliothek verwenden .

Dokumentation des toString-Formats

Wenn Ihre Methode toString()Daten nicht als Feld=Wert ausgibt, ist es eine gute Idee, das Ausgabeformat zu dokumentieren toString, insbesondere für wichtige Objekte wie Mitarbeiter oder Student. toString()Wenn eine Klassenmethode beispielsweise „ John-101-Sales-9846387321Работник(Employee) “ ausgibt , wäre es eine gute Vorgehensweise, das Format als „Name-ID-Abteilungskontakt“ anzugeben, gleichzeitig aber dem Client keinen Zugriff zu ermöglichen Wenn Sie Informationen aus der Methode erhalten , sollten Sie immer geeignete Methoden zum Abrufen von Daten bereitstellen, z. B. , usw., da die aus der Objektdarstellung erhaltenen Informationen fragil und fehleranfällig sind und der Client daher immer über einen sauberen Pfad zum Abrufen der Daten verfügen sollte Information. toString()getName()getId()getContact()toString()

Verwenden Sie StringBuilder, um die Ausgabe von toString() zu erstellen.

Wenn Sie Code für eine Methode in Java schreiben toString(), verwenden Sie StringBuilder , um einzelne Attribute hinzuzufügen. Wenn Sie eine IDE wie Eclipse , Netbeans oder IntelliJ verwenden , ist die Verwendung StringBuilderder Methode „and“ append()anstelle des Operators „+“ zum Verfassen toStringebenfalls die richtige Wahl. Standardmäßig generieren sowohl Eclipse als auch Netbeans toStringmit dem Verkettungsoperator.

Verwendung der @Override-Annotation

Die Verwendung von @OverrideMethodenüberschreibungen in Java ist eine der Best Practices in der Sprache. Dieser Hinweis ist jedoch nicht so wichtig wie beim Überschreiben der equals()und- Methoden compareTo(), da das Überladen anstelle des Überschreibens zu subtileren Fehlern führen kann, die schwer zu berechnen sind. In jedem Fall ist es besser, die Annotation zu verwenden @Overrride.

Drucken des Inhalts eines Arrays anstelle des Druckens des Array-Objekts

Ein Array ist ein Objekt in Java, aber es überschreibt keine Methode toStringund wenn Sie ein Array drucken, ist das Standardausgabeformat nicht sehr nützlich, da wir gerne den Inhalt des Arrays sehen würden. Dies ist übrigens ein weiterer Grund, warum das Array char[] dem Array String vorzuziehen ist , um vertrauliche Daten wie ein Passwort zu speichern. Nehmen Sie sich die Zeit, zu prüfen, ob das Drucken des Inhalts eines Arrays Ihren Kunden hilft oder nicht. Wenn es sinnvoll ist, drucken Sie den Inhalt des Arrays anstelle des Objekts selbst. Aus Leistungsgründen ist es vorzuziehen, Collectionsolche ArrayListoder HashSet zum ArraySpeichern anderer Objekte zu verwenden.

Bonus-Tipps

Einige weitere Bonustipps zum Überschreiben von Methoden toStringin Java.
  1. Druckausgabe toStringje nach Länge in mehreren Zeilen oder in einer Zeile.

  2. Beziehen Sie vollständig qualifizierte Klassennamen in die Darstellung ein toString, package.classum Missverständnisse zu vermeiden.

  3. Sie können Nullwerte überspringen oder anzeigen, es ist jedoch besser, sie anzuzeigen. Manchmal sind sie nützlich, weil sie zeigen, welches Feld während eines Vorfalls vorhanden ist null, beispielsweise NullPointerException .

  4. Verwenden Sie beispielsweise ein Schlüsselwertformat. member.name=member.valueDie meisten IDEs unterstützen dies.

  5. Schließen Sie geerbte Mitglieder ein, wenn Sie der Meinung sind, dass sie der erbenden Klasse die erforderlichen Informationen bereitstellen sollten.

  6. Manchmal enthält ein Objekt viele optionale und erforderliche Parameter, wie wir in unserem Builder- Vorlagenbeispiel gezeigt haben, wenn es fast unmöglich ist, alle Felder zu drucken. In diesem Fall können wir nur die erforderlichen Felder drucken, insbesondere da wir optionale Felder haben.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION