[英]Convert from ArrayList<String[]> to Collection<Object[]>?
我有一个方法必须返回一个数组集合。 (这是JUnit中的参数化测试。)实际上我只需要返回三个字符串,但它们需要在一个数组集合中。 这是我的方法:
public static Collection<Object[]> browserList() {
String[] firefox = { "firefox" };
String[] chrome = { "chrome" };
String[] ie = { "ie" };
ArrayList<String[]> list = new ArrayList<String[]>(3);
list.add(firefox);
list.add(chrome);
list.add(ie);
return list;
}
这会产生错误: Type mismatch: cannot convert from ArrayList<String[]> to Collection<Object[]>
。
所以真的有两个问题:(a)这有什么问题,考虑到ArrayList
是Collection
一个实现, String
是从Object
派生的; (b)我该如何解决?
谢谢你的帮助。
对于第一个问题, Collection <String []>
不是Collection <Object []>
因为泛型不是多态的。
对于第二个问题,只需将所有内容声明为对象:
public static Collection<Object[]> browserList() {
Object[] firefox = { "firefox" };
Object[] chrome = { "chrome" };
Object[] ie = { "ie" };
ArrayList<Object[]> list = new ArrayList<Object[]>(3);
list.add(firefox);
list.add(chrome);
list.add(ie);
return list;
}
你可以浓缩的:
public static Collection<Object[]> browserList() {
Object[] firefox = { "firefox" };
Object[] chrome = { "chrome" };
Object[] ie = { "ie" };
return Arrays.asList(firefox, chrome, ie);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.