我正在从产品的API中获取Vector.
Vector<?> dataVector = dataAPI.getReturnVector();
期望向量包含字符串作为值.我能够将矢量的大小打印为2.但由于某种原因,我无法迭代和打印值.
我试过了
Iterator<?> iter = dataVector.iterator(); while( iter.hasNext()) { System.out.println(iter.next()); }
我总是得到一个
[java.lang.String; cannot be cast to java.lang.String
我用了
iter.next().getClass().getName()
它原来只是java.lang.String.
我google了一下,在http://prideafrica.blogspot.com/2007/01/javalangclasscastexception.html发现了类似的问题
我试图将泛型设置为String [],但最终出现了相同的错误.
如果向量包含java.lang.String,为什么我会得到这个强制转换异常?如何打印实际值?
请提供您的建议.
解决方法
因此,API不会返回字符串向量,而是返回String []的向量.
您应该能够迭代向量,然后,对于每个元素,循环遍历数组.
Iterator<String[]> iter = dataVector.iterator(); while( iter.hasNext()) { String[] array = iter.next(); for(int i=0; i < array.length; i++) { System.out.println(i + ": " + array[i]); } }