Lascia che sia bello scrivere messaggi toString è un compito noioso e noioso che deve essere fatto in quanto può essere davvero utile per l'inseption in un debugger o nel logging.Qual è la più bella classe di build toString che hai usato o visto? Che cosa lo ha reso piacevole
Quali caratteristiche ti piace o desiderio dovrebbe essere in un tale aiuto ...
proprietà di dumping dovrebbero venire w/etichette.
name = mP paese = Australia ...
valori che sono un po 'di default dovrebbe essere opzionalmente saltato.
- Non è possibile stampare molte proprietà 0 o null.
- Se si imposta un'etichetta e il valore è null, non includere.
il separatore tra etichetta e valore deve essere aggiornabile e deve essere inserito automaticamente tra etichette e valori quando vengono aggiunti.
dovrebbe anche inserire automaticamente il separatore di vostra scelta.
Se si desidera uno spazio per le virgole, qualunque sia il valore tra un array e l'altro, è necessario.
dovrebbe quotare automaticamente valori stringa ... perché è importante sapere esattamente dove inizia e termina una stringa.
* name = mP state = "New South Wales"
quando viene aggiunto un elenco, mappa o impostare le regole circa citando stringhe, utilizzando il set di separazione, ecc dovrebbe essere rispettato. Non scaricare semplicemente Collection.toString().
Ho un paio di altri in someting sto migliorando si può elencare le proprie idee, osservazioni ecc
new ToStringBuilder()
.setLabelValueSeparator('=')
.label("name")
.value(Country.AUSTRALIA) // -> returns "Australia" without the quotes.
.label("day of death")
.value(null) //
.label("numbers")
.valueSeparator(",");
.value(Arrays.asList(1, 2, 3)
.build();
volontà ovviamente comportare "name =" numbers Australia"= 1, 2 , 3;
Yeh ma generate toStrings succhiare, hanno tutte le debolezze descritte nel q. –
Mi stavo alludendo al fatto che non è così importante. 'toString()' è semplicemente un meccanismo di debug per consentire la visualizzazione dello stato di una classe. La presentazione dei dati dovrebbe essere eseguita da una sorta di formattatore esterno. Se stai usando 'toString()' per qualsiasi altra cosa, allora penso che tu abbia sbagliato il tuo progetto. –
È possibile ottenere risultati migliori delle toString generate, quindi perché non andare oltre e scrivere un toString corretto che è significativo anziché eseguire il dumping di ogni campo possibile. Ci sono così tante debolezze che questo approccio non è divertente. Immaginate se String.toString abbia preso questo approccio avremmo qualche brutto char [] dump di un array con dump di singoli caratteri. –