【发布时间】:2013-02-12 08:23:32
【问题描述】:
当对象是数组时,我想将对象转换为字符串 看到这样
public void convertValue(Object value) {
if(value.getClass().isArray()){
Arrays.deepToString(value.toArray());
}
}
我如何将值转换为“value.toArray()”?
【问题讨论】:
当对象是数组时,我想将对象转换为字符串 看到这样
public void convertValue(Object value) {
if(value.getClass().isArray()){
Arrays.deepToString(value.toArray());
}
}
我如何将值转换为“value.toArray()”?
【问题讨论】:
如果您仅想要处理对象数组(不是原始数组),您可以直接转换为 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[] 变量。
【讨论】: