当对象是这样的数组时,我想将对象转换为字符串
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[]
变量。