【发布时间】:2019-09-02 10:45:05
【问题描述】:
我有一个函数foo,它接受一个参数ArrayList<ArrayList<Object>>。当我尝试通过传递ArrayList<ArrayList<Integer>> 类型的变量来调用函数时,编译器显示错误消息:
incompatible types:
java.util.ArrayList<java.util.ArrayList<java.lang.Integer>>
cannot be converted into
java.util.ArrayList<java.util.ArrayList<java.lang.Object>>
为了使函数接受任何类型的 2D ArrayList 参数,我应该更改/做什么?提前致谢。
示例代码
public static ArrayList<ArrayList<Object>> foo (ArrayList<ArrayList<Object>> parameter)
{
//do something
}
调用函数
ArrayList<ArrayList<Integer>> parameter;
//do something with the parameter
ArrayList<ArrayList<Integer>> product = foo(parameter);//red line under parameter indicate it has error
【问题讨论】:
-
向我们展示您的代码。
-
如果适合您的目的,您可以让您的方法接受
ArrayList<ArrayList<?>>。如果不进行强制转换,您将无法将任何东西放入其中,但您可以从中取出对象。 -
我试过
ArrayList<?>,但它不起作用。当我尝试启动它时也会出现问题new ArrayList<?> -
你不能实例化
<?>泛型类型;您只能使用它来引用现有对象
标签: java object arraylist boxing