当对象是数组时,将Object转换为String(java)

时间:2013-02-12 08:23:32

标签: java arrays

我想在对象是数组时将Object转换为String 看起来像这样

    public void convertValue(Object value) {

    if(value.getClass().isArray()){
        Arrays.deepToString(value.toArray());
    }

}

我如何将值转换为“value.toArray()”?

1 个答案:

答案 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[]变量。