2012-05-08 14 views
2

2Dオブジェクト配列列を1D文字列配列としてキャストしようとしています。私は何の問題データ自体を取得していないが、それは実行時エラーを作成するデータ型です:2Dオブジェクト配列の列を1D文字列配列としてキャスト

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.String;

は、これは私が働いていたコードフラグメントの例です:

Object[][] currentData = BackOffice.getData(); 
String[] dataWanted = null; 

    for (int i=0; i<currentData.length; i++) 
     dataWanted = (String[])currentData[i][1]; 

私は(String [])を使ってキャストすることができたと思っていましたが、明らかにそうではありませんでした... 助けがありがたいです!

答えて

3

私が正しく理解していれば、あなたは何をしたい:

String[] dataWanted = new String[currentData.length]; 

for (int i=0; i<currentData.length; i++) 
    dataWanted[i] = currentData[i][1]; 
+0

私が欲しがっているのは、currentData [i] [1]の前に(String)を使って幸せにキャストできます。ありがとう!もちろん私はdataWanted [i]を使う必要がありました...明らかです! – dgBP

1

currentDataは、オブジェクトの2次元配列なので、currentData[i][1]は、単一のオブジェクトに評価されます。 dataWantedは文字列の配列です。 1つのオブジェクトを配列型にキャストすることはできません。さらに、項目を挿入する前に配列をサイズで初期化する必要があります。これはあなたが達成しようとしているものでない場合は、より具体的には、あなたの質問を編集してください

String[] dataWanted = new String[currentData.length]; 
for (int i = 0; i < currentData.length; i++) { 
    dataWanted[i] = (String)currentData[i][1]; 
} 

:あなたはdataWanted配列に各オブジェクトを配置したい場合は、このような何かをしたいでしょう。

+0

ええ、それは完璧な感謝です:) – dgBP

関連する問題