gpt4 book ai didi

java - 从 ArrayList 转换为 Collection

转载 作者:搜寻专家 更新时间:2023-11-01 01:54:18 25 4
gpt4 key购买 nike

我有一个必须返回数组集合的方法。 (这是 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) 这有什么问题,考虑到 ArrayListCollection 的实现和 String源自 Object ; (b) 我该如何解决?

感谢您的帮助。

最佳答案

第一个问题,a Collection <String []> is not a 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);
}

关于java - 从 ArrayList<String[]> 转换为 Collection<Object[]>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14569437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com