Java:将对象转换为数组类型
我正在使用一个返回“对象”类型的普通对象的Web服务。 调试清楚地表明在这个对象中有某种数组,所以我想知道如何将这个“对象”转换为数组(或类似的)?
我尝试了以下方法:
Collection arr = (Collection) values; Vector arr = (Vector) values; ArrayList arr = (ArrayList) values;
但没有任何效果。 我总是得到一个InvocationTargetException。
我究竟做错了什么?
编辑 :
遗憾的是,我不得不删除显示Eclipse调试器输出的图像链接,因为它已不再可用。 请不要错过为什么在答案中提到的图像不再存在。
您的values
对象显然是一个Object[]
其中包含一个包含值的String[]
。
String[] stringValues = (String[])values[0];
你得到的(根据调试图像)是一个包含字符串数组的对象数组。 所以你需要这样的东西:
Object[] objects = (Object[]) values; String[] strings = (String[]) objects[0];
您没有显示values
的类型 – 如果这已经是Object[]
那么您可以使用(String[])values[0]
。
当然,即使使用强制转换为Object[]
您仍然可以在一个语句中执行此操作,但它很难看:
String[] strings = (String[]) ((Object[])values)[0];