製品のAPIからベクターを取得しています。
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
だけであることが判明した。
私は少しグーグルし、http://prideafrica.blogspot.com/2007/01/javalangclasscastexception.htmlで同様の問題を見つけました
ジェネリックスをに設定しようとしString[]
ましたが、同じエラーが発生しました。
ベクトルにが含まれている場合java.lang.String
、なぜこのキャスト例外が発生するのですか?実際の値を印刷するにはどうすればよいですか?
親切にあなたの提案を提供します。
そのため、APIは文字列のベクターではなく、文字列のベクター[]を返します。
ベクトルを反復処理し、要素ごとに配列をループできる必要があります。
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]);
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加