Lets face it writing nice toString messages is a boring messy chore that needs to be done as it can really be helpful for insepection in a debugger or logging.
What features do you like or wish should be in such a helper...
dumping properties should come w/ labels.
name=mP country=Australia ...
values that are some default should optionally be skipped.
- Theres no point printing lots of properties that are 0 or null.
- If you set a label and the value is null dont include either.
the seperator between label and value should be updatable and it should auto be inserted between labels and values when they are added.
it should also auto insert the separator of your choice.
If you want commas spaces whatever between values when including an array so be it.
it should auto quote string values...because its important to know exactly where a string starts and ends.
*name=mP state="New South Wales"
when a list, map or set is added the rules about quoting strings, using the set separator etc should be respected. Please dont just dump Collection.toString().
I have a few others in someting i am improving can you list your own ideas, observations etc.
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();
will of course result in "name="Australia" numbers=1, 2, 3;