在一个表达式中将ArrayList <string>转换为String []?</string>

时间:2013-09-12 18:52:23

标签: java exception casting super

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

我尝试过以下操作,但会导致类异常[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

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

我希望能够通过coolArrayList<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.

1 个答案:

答案 0 :(得分:13)

试试这个:

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

以上是将ArrayList转换为数组的类型安全方式,它不是真正的强制转换,只是转换。

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