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

nir*_*nir 0 java arrays

我想在对象是这样的数组时将Object转换为String

    public void convertValue(Object value) {

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

}
Run Code Online (Sandbox Code Playgroud)

我如何投入价值来制作"value.toArray()"?

Jon*_*eet 8

如果你只是要处理的对象数组(不是原始的数组),你可以只投来Object[],由于阵列方差:

if (value instanceof Object[]) {
    String text = Arrays.deepToString((Object[]) value);
    ...
}
Run Code Online (Sandbox Code Playgroud)

当然,对于原始数组,你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()); 
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,该array值仍然引用字符串数组 - 但String[]可以将引用分配给Object[]变量.