commons-file/src/main/java/info/monitorenter/util/StringUtil.java
public static final void listOfArraysToString(final List<Object> objects) {
    if (objects == null) {
      return;
    }
    int stop = objects.size();
    for (int i = 0; i < stop; i++) {
      objects.add(i, StringUtil.arrayToString(objects.remove(i)));
    }
  }
public static final void listOfArraysToString(final List<Object> objects) {
    if (objects == null) {
      return;
    }
    int stop = objects.size();
    for (int i = 0; i < stop; i++) {
      objects.add(i, StringUtil.arrayToString(objects.remove(i)));
    }
  }
Little String output - helper that modifies the given LinkedList by getting
it's Objects and replace them by their toString() - representation.
<p>

What is special? <br>
If an Object in the given List is an Array (of Objects or primitive data
types) reflection will be used to create a String - representation of them.
The changes are reflected in the Objects that are in the given List. So
keep a reference to it. If you are sure, that your List does not contain
Arrays do not use this method to avoid overhead.
<p>

Avoid structural modifications (remove) of the list while using this
method. This method or better: the given List is only thread - safe if the
list is synchronized.
<p>

A clever VM (hotspot) will be able to inline this function because of void
return.
<p>

@param objects
the List of objects that will be changed to a list of the String
representation of the Objects with respect to special array
treatment.