Print array values in the interactions pane as:
[1, 2, 3]
rather than:
[Ljava.lang.Integer;@16b6c55
We already make a check to determine the returned type
of any DynamicJava expression in the interactions pane.
If the returned type is a String, for example, we
output "\"" + result.toString() + "\"". For primitive
types, we add color. Array types are currently treated
like any other non-String reference type -- we output
result.toString(). A simple modification would make
arrays a special case, like Strings and primitives.
As of the 1.5 API, java.util.Arrays includes methods
"toString()" and "deepToString()" that could easily be
used to accomplish this. A simple approach could check
that the 1.5 APIs are available and then call the
appropriate method. Alternately, the *.java file
generated from any *.dj2 file currently contains a
toString() method that works for arrays and without the
1.5 API. It could be lifted almost directly into the
DrJava code base.