配列を文字列に、

String[] ary = { "A", "B", null, "C" };

これを System.out.println やログで出力すると

[Ljava.lang.String;@75b84c92

となってしまう。
期待としては、以下のように出力したい。

[A] [B] [null] [C]

汎用性を考えて、オブジェクトの toString が想定どおりに実装されているとして
次のような static メソッドでを用意すれば便利であろう。

import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
 * ArrayString
 */
public interface ArrayString<T>{

    public static <T> String print(T[] array) {
        Objects.requireNonNull(array, "array must not be null");
        return Arrays.stream(array)
        .map(t->"["+Optional.ofNullable(t).map(e->e.toString()).orElse("null")+"]")
        .collect(Collectors.joining(" "));
    }
    public static <T> Function<T[], String> of() {
        return x->print(x);
    }
}

使用例

String res = ArrayString.print(ary);
String res = ArrayString.of().apply(ary);
String res = Optional.of(ary).map(ArrayString::print).orElse("null");

いずれも、res は以下の文字列になる

[A] [B] [null] [C]