该类java.util.Objects
包含deepEquals(Object a, Object b)
可用于比较任何类型的对象(包括数组和空引用)的方法,但不包含类似的deepToString(Object o)
. 这令人失望。(顺便说一下,这个类的私有构造函数包含消息“没有你的 java.util.Objects 实例!”这在一定程度上解释了为什么这个类如此卑鄙)。既然如此,我尝试自己实现该方法:
public static String deepToString(Object o) {
if (o == null || !o.getClass().isArray())
return Objects.toString(o);
else
return Arrays.deepToString((Object[])o);
}
问题是它不适用于原始类型的一维数组。我是否必须遍历所有带有嵌套else if
s 的原始数组类型并为它们调用相应的Arrays.toString(...)
方法,还是有更简单的替代方法?