列出<Object>和List <?>

Chr*_*ris 17 java list arraylist object

我有两个问题,一点一点......首先,为什么我不能这样做:

List<Object> object = new List<Object>();
Run Code Online (Sandbox Code Playgroud)

第二,我有一个方法返回一个List<?>,我怎么把它变成一个List<Object>,我能够简单地抛出它吗?

谢谢!

NPE*_*NPE 38

为什么我不能这样做:

List<Object> object = new List<Object>();
Run Code Online (Sandbox Code Playgroud)

您不能这样做List是因为它是一个接口,并且接口无法实例化.只有(具体)类可以.执行具体种类的实例List包括ArrayList,LinkedList

以下是如何创建以下实例ArrayList:

List<Object> object = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

我有一个方法返回一个List<?>,我怎么把它变成一个List<Object>

向我们展示相关代码,我将更新答案.


Cha*_*har 5

List<Object> object = new List<Object>();
Run Code Online (Sandbox Code Playgroud)

您不能这样做,因为List是一个接口,并且您不能创建任何接口的对象,或者您不能实例化任何接口。此外,您可以将实现List的类的任何对象分配给其引用变量。例如,您可以执行以下操作:

list<Object> object = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

这里ArrayList是实现List的类,您可以使用任何实现List的类。