我想在对象是数组时将Object转换为String 看起来像这样
public void convertValue(Object value) {
if(value.getClass().isArray()){
Arrays.deepToString(value.toArray());
}
}
我如何将值转换为“value.toArray()”?
答案 0 :(得分:8)
如果只想要处理对象数组(不是原始数组),由于数组差异,你只能转换为Object[]
:
if (value instanceof Object[]) {
String text = Arrays.deepToString((Object[]) value);
...
}
对于原始数组,当然无论如何都无法调用deepToString
。
演示数组差异的示例代码:
public class Test {
public static void main(String[] args) {
Object x = new String[] { "Hello", "there" };
Object[] array = (String[]) x;
// Prints "class [Ljava.lang.String;"
System.out.println(array.getClass());
}
}
如您所见,array
值仍然引用字符串数组 - 但可以将String[]
引用分配给Object[]
变量。