我正在使用一个返回"对象"类型的普通对象的Web服务.调试清楚地表明在这个对象中有某种数组,所以我想知道如何将这个"对象"转换为数组(或类似的)?
我尝试了以下方法:
Collection<String> arr = (Collection<String>) values;
Vector<String> arr = (Vector<String>) values;
ArrayList<String> arr = (ArrayList<String>) values;
Run Code Online (Sandbox Code Playgroud)
但没有任何效果.我总是得到一个InvocationTargetException.
我究竟做错了什么?
编辑:
遗憾的是,我不得不删除显示Eclipse调试器输出的图像链接,因为它已不再可用.请不要错过为什么在答案中提到的图像不再存在了.
gus*_*afc 39
您的values对象显然Object[]包含String[]包含值的对象.
String[] stringValues = (String[])values[0];
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 19
你得到的(根据调试图像)是一个包含字符串数组的对象数组.所以你需要这样的东西:
Object[] objects = (Object[]) values;
String[] strings = (String[]) objects[0];
Run Code Online (Sandbox Code Playgroud)
你还没有显示出类型values- 如果这已经是Object[]你可以使用的话(String[])values[0].
当然,即使有演员Object[]也可以在一个声明中做到,但它很难看:
String[] strings = (String[]) ((Object[])values)[0];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121425 次 |
| 最近记录: |