[java.lang.String中;无法强制转换为java.lang.String

前端之家收集整理的这篇文章主要介绍了[java.lang.String中;无法强制转换为java.lang.String前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在从产品的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]);
    }
}

猜你在找的Java相关文章