public static String nullSafeToString(@Nullable Object[] array) {
        if (array == null) {
            return NULL_STRING;
        }
        int length = array.length;
        if (length == 0) {
            return EMPTY_ARRAY;
        }
        StringJoiner stringJoiner = new StringJoiner(ARRAY_ELEMENT_SEPARATOR, ARRAY_START, ARRAY_END);
        for (Object o : array) {
            stringJoiner.add(String.valueOf(o));
        }
        return stringJoiner.toString();
    }
Return a String representation of the contents of the specified array.
<p>The String representation consists of a list of the array's elements,
enclosed in curly braces ({@code "{}"}). Adjacent elements are separated
by the characters {@code ", "} (a comma followed by a space).
Returns a {@code "null"} String if {@code array} is {@code null}.

@param array the array to build a String representation for
@return a String representation of {@code array}
analyzer/src/main/java/nl/basjes/parse/useragent/utils/springframework/util/ObjectUtils.java