0

eclips タイプの不一致でコーディング エラーが発生し、オブジェクトを文字列に変換できません。AL に入るすべてのデータは文字列型であり、AL は文字列として宣言されます。
AL を String[] に移動させることができれば、それはより良いでしょう。ここに私のコードがあります:

Object[] Result;
AL.toArray (Result);
String[] news= new String[Result.length];
for (int i1=0;i1<news.length;i1++){
    news[i1]=Result[i1]; <=====here is where the error shows up
4

6 に答える 6

1

これを変える:

 news[i1]=Result[i1];

これに:

 news[i1]=Result[i1].toString();
于 2013-06-12T05:53:47.600 に答える
1

型キャストを試してください。

news[i1] = (String) Result[i1]; 

ただし、そのような型キャストの前に Result[i1] の型を確認することをお勧めします。だからあなたは次のようなことができます

if( Result[i1] instanceof String){
 news[i1] = (String) Result[i1];
}

Result 配列のすべてのオブジェクトが String 型であると確信している場合は、そもそも String[] を使用しないのはなぜですか? 個人的に、私は Object[] の大ファンではありません...

于 2013-06-12T05:54:43.213 に答える
0

ArrayList.toArray()メソッドに既存の配列を指定して、取得する配列のタイプを定義できます。

したがって、次のようなことができます。

String[] emptyArray = new String[0];
String[] news = AL.toArray(emptyArray);
于 2013-06-12T06:01:12.460 に答える
0
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);
于 2013-06-12T05:55:42.843 に答える
0

このコードを試してください:

public static void main(String[] args)
{
    Object[] Result = {"a1","a2","a3"};

    String[] AL = new String[Result.length];

    for(int a=0; a<Result.length; a++)
    {
        AL[a] = Result[a].toString();
    }

    System.out.println(AL[0]);
    System.out.println(AL[1]);
    System.out.println(AL[2]);
}
于 2013-06-12T08:46:33.927 に答える
0

ALあなたが報告したように、 、これArrayList<String>は1行のコードであなたが望むことをするはずです:

String[] news = AL.toArray(new String[AL.size()]);
于 2013-06-12T13:44:00.870 に答える