Java:将对象强制转换为数组类型
我使用的web服务返回类型为“object”的普通对象。调试清楚地表明,这个对象中有某种数组,所以我想知道如何将这个“对象”强制转换为数组(或类似的数组) 我尝试了以下方法:Java:将对象强制转换为数组类型,java,Java,我使用的web服务返回类型为“object”的普通对象。调试清楚地表明,这个对象中有某种数组,所以我想知道如何将这个“对象”强制转换为数组(或类似的数组) 我尝试了以下方法: Collection<String> arr = (Collection<String>) values; Vector<String> arr = (Vector<String>) values; ArrayList<String> arr = (ArrayLi
Collection<String> arr = (Collection<String>) values;
Vector<String> arr = (Vector<String>) values;
ArrayList<String> arr = (ArrayList<String>) values;
Collection arr=(Collection)值;
向量arr=(向量)值;
ArrayList arr=(ArrayList)值;
但什么都没用。我总是得到一个InvocationTargetException
我做错了什么
编辑:
遗憾的是,我不得不删除显示Eclipse调试器输出的图像的链接,因为它不再可用。请不要奇怪为什么在回答中提到了一个不再存在的图像。您的
值
对象显然是一个对象[]
,包含一个字符串[]
,包含值
String[] stringValues = (String[])values[0];
您得到的(根据调试图像)是一个包含字符串数组的对象数组。所以你需要一些类似的东西:
Object[] objects = (Object[]) values;
String[] strings = (String[]) objects[0];
您尚未显示值的类型
-如果这已经是对象[]
,那么您可以只使用(字符串[])值[0]
当然,即使对Object[]
进行强制转换,您仍然可以在一条语句中完成,但这很难看:
String[] strings = (String[]) ((Object[])values)[0];
InvocationTargetException包含另一个异常。它说什么?Eclipse说ClassCastException。