重写Arrays.toString()方法

Jom*_*jes 4 java arrays overriding tostring

我只是想知道,是否可以重写类java.util.Arrays的toString()方法。我正在课堂上做一个项目,我计划输出数组而不是

[33,12,98]至[033,012,098]

我只是想知道是否有可能在不重写Arrays.toString()方法的情况下做到这一点。

谢谢您的帮助 :)

Nic*_*s K 9

您无法覆盖 Arrays.toString()。相反,您可以通过添加前导0 来编写自己的通用方法,例如:

public static <T> String toString(T arr[]) {
    return Arrays.stream(arr).map(s -> "0" + s).collect(Collectors.joining(", ", "[", "]"));
}
Run Code Online (Sandbox Code Playgroud)

并简单地称之为:

Integer arr[] = {13, 14, 15};
System.out.println(toString(arr));
Run Code Online (Sandbox Code Playgroud)

如果您正在处理原始数据类型(假设仅在int此处),则toString()将如下所示:

public static String toString(int arr[]) {
   return Arrays.stream(arr).mapToObj(s -> "0" + s)
                            .collect(Collectors.joining(", ", "[", "]"));
}
Run Code Online (Sandbox Code Playgroud)