4

我有一个接受 a 的构造函数ArrayList<String>,但想要调用super期望一个String[]数组。

我尝试了以下方法,但会导致类异常,[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()]));

ArrayList以上是将 an转换为数组的类型安全方法,它不是真正的cast,只是一种转换。

关于报告的新错误 - 您必须在错误中提到的实体中声明一个无参数构造函数。

于 2013-09-12T18:53:23.380 回答