, , , , , (.. ArrayUtils.toString(o) List.toString).
Arrays.deepToString,
"[aaa, zzz, [3, 4], [1, 2], [3, 4], null]"
API Stream , :
, java.lang.reflect.Array
public class MyArrayUtil {
static String paramsAsString(Object o) {
if(o==null) return "null";
if(!o.getClass().isArray()) return o.toString();
return IntStream.range(0, Array.getLength(o))
.mapToObj(i->Array.get(o, i)).map(MyArrayUtil::paramsAsString)
.collect(Collectors.joining(", ", "{", "}"));
}
}
, . List toString(). Collector, . {, }, :
{aaa, zzz, {3, 4}, {1, 2}, {3, 4}, null}
, :
static String paramsAsString(Object o) {
if(o==null) return "null";
if(!o.getClass().isArray()) return o.toString();
Stream<String> stream;
if (o instanceof Object[]) {
stream=Arrays.stream((Object[]) o).map(MyArrayUtil::paramsAsString);
}
else if (o instanceof int[]) {
stream=Arrays.stream((int[])o).mapToObj(String::valueOf);
}
else if (o instanceof long[]) {
stream=Arrays.stream((long[])o).mapToObj(String::valueOf);
}
else if (o instanceof double[]) {
stream=Arrays.stream((double[])o).mapToObj(String::valueOf);
}
else stream=IntStream.range(0, Array.getLength(o))
.mapToObj(i->Array.get(o, i)).map(Object::toString);
return stream.collect(Collectors.joining(", ", "{", "}"));
}