加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:33:35 所属栏目:Java 来源:网络整理
导读:我正在从产品的API中获取Vector. Vector? dataVector = dataAPI.getReturnVector(); 期望向量包含字符串作为值.我能够将矢量的大小打印为2.但由于某种原因,我无法迭代和打印值. 我试过了 Iterator? iter = dataVector.iterator();while( iter.hasNext()) { S
我正在从产品的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]);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读