4

を受け入れるコンストラクターがありますが、配列を期待しArrayList<String>て呼び出したいです。superString[]

以下を試してみましたが、クラス例外が発生し、[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

public cool(ArrayList<String> s) {
    super((String[]) s.toArray());
}

cool合格できるようになりたいですArrayList<String>

ありがとう

編集:最近の提案を使用してみました

super(s.toArray(new String[s.size()]));

しかし、今では次の例外が発生します。

entity must have a no-arg constructor.; nested exception is java.lang.IllegalArgumentException: : entity must have a no-arg constructor.

4

1 に答える 1

13

これを試して:

super(s.toArray(new String[s.size()]));

上記は、ArrayListan を配列に変換するタイプ セーフな方法です。これは実際のキャストではなく、単なる変換です。

報告された新しいエラーに関しては、エラーで言及されているエンティティで引数なしのコンストラクターを宣言する必要があります。

于 2013-09-12T18:53:23.380 に答える