首页 > 解决方案 > 为什么我不能创建泛型类的泛型 arraylist 成员?

问题描述

我想添加方法来返回列表或特定元素,并且我希望它可以与任何泛型类一起使用。为什么Java不允许这样做?

class ArrayListBuilder<E>{
    private ArrayList<E> a_list=new ArrayList<>();
}

标签: javaclassgenericsarraylistcollections

解决方案


我试图编译你的代码并得到这些错误

ArrayListBuilder.java:2: error: cannot find symbol
    private ArrayList<E> a_list=new ArrayList<>();
            ^
  symbol:   class ArrayList
  location: class ArrayListBuilder<E>
  where E is a type-variable:
    E extends Object declared in class ArrayListBuilder
ArrayListBuilder.java:2: error: cannot find symbol
    private ArrayList<E> a_list=new ArrayList<>();
                                    ^
  symbol:   class ArrayList
  location: class ArrayListBuilder<E>
  where E is a type-variable:
    E extends Object declared in class ArrayListBuilder
2 errors

如您所见,实际上有两个错误,第一个意味着您需要 import java.util.ArrayList。一旦你这样做了,你的代码编译得很好。所以把你的代码的第一行

import java.util.ArrayList;

TL;DR:您的问题的解决方案是阅读所有错误消息。不只是最后一个。


推荐阅读