To be concrete, here's a proposed toString method : http://cr.openjdk.java.net/~martin/webrevs/openjdk8/toString/ which is pretty good as it stands, but even better once it gets to use the no-copy String constructor.