- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
类java.util.Objects
包含deepEquals(Object a, Object b)
方法,可用于比较任何类型的对象(包括数组和null)引用),但不包含类似的 deepToString(Object o)
。这令人失望。 (顺便说一下,这个类的私有(private)构造函数包含消息“No java.util.Objectsinstances for you!”,这在某种程度上解释了为什么这个类如此卑鄙)。既然如此,我尝试自己实现该方法:
public static String deepToString(Object o) {
if (o == null || !o.getClass().isArray())
return Objects.toString(o);
else
return Arrays.deepToString((Object[])o);
}
问题是它不适用于基本类型的一维数组。我是否必须使用嵌套的 else if 遍历所有原始数组类型并为它们调用相应的 Arrays.toString(...) 方法,或者有一个更简单的替代方法?
最佳答案
我找到了这个解决方案:将原始数组包装到 Object[]
中并将public Arrays.deepToString(Object[] a)
返回的结果中去掉外括号:
public static String deepToString(Object o) {
if (o == null || !o.getClass().isArray())
return Objects.toString(o);
else if (o instanceof Object[])
return Arrays.deepToString((Object[])o);
else {
String s = Arrays.deepToString(new Object[] { o });
return s.substring(1, s.length() - 1);
}
}
效率不高,因为它可以创建两个大字符串而不是单个字符串。但有了这个技巧,我可以使用隐藏的
Arrays.deepToString(Object[] a, StringBuilder buf, Set<Object[]> dejaVu)
包含原始数组解析逻辑的方法。
关于java - Objects.deepToString(Object o) 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62191507/
这个问题已经有答案了: 奥 git _a (3 个回答) 奥 git _a (4 个回答) 已关闭 7 年前。 我想使用此方法将二维数组转换为字符串到属性文件中。然后,通过将属性字符串转换回二维数组来
有人可以帮我做点什么吗?我正在尝试将最初使用 deepToString() 方法创建的字符串转换回数组。我已经尝试了几乎所有在 Stack Overflow 上能找到的东西……但没有成功。 这就是我现
Arrays.deepToString()主要用于数组中还有数组的情况,而Arrays.toString()则相反,对于Arrays.toString()而言,当数组中有数组时,不会打印出数组中的内
类java.util.Objects包含deepEquals(Object a, Object b)方法,可用于比较任何类型的对象(包括数组和null)引用),但不包含类似的 deepToString
我发现了类似的问题: Java - Best way to print 2D array? 但他们没有回答以下问题 - 它是否更有效率? 我正在用 C# 编写一个基本的小型控制台游戏,需要反复清除和写
我正在调试一些 javascript,并不断遇到 javascript [object](例如,当我显示带有值的警报时,它显示为 [object] 或 NaN)。我正在尝试读取该对象的内容。我知道在
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我正在处理某人的 Java 代码,其中关键数据结构是 m x n x p 数组,float[][][]。我需要把它放到 Python 中;目前我的方法是使用 Arrays.deepToString 将
我在使用 Arrays.deepToString( Object[] arr ) 方法打印 Java 中基元数组的元素时遇到问题。如果我将 arr 定义为 int[][] T = { {0,1},{2
我是一名优秀的程序员,十分优秀!