0

当对象是这样的数组时,我想将对象转换为字符串

    public void convertValue(Object value) {

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

}

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

4

1 回答 1

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

于 2013-02-12T08:25:22.913 回答