18

所以我在 Java 中工作,我想声明一个通用列表。

所以到目前为止我正在做的是List<T> list = new ArrayList<T>();

但现在我想添加一个元素。我怎么做?通用元素是什么样的?

我试过做类似 List.add("x") 的事情来看看我是否可以添加一个字符串,但这不起作用。

(我没有声明 a 的原因List<String>是因为我必须将此 List 传递给另一个仅List<T>作为参数的函数。

4

3 回答 3

24

您应该有一个泛型类或一个泛型方法,如下所示:

public class Test<T>  {
    List<T> list = new ArrayList<T>();
    public Test(){

    }
    public void populate(T t){
        list.add(t);
    }
    public static  void main(String[] args) {
        new Test<String>().populate("abc");
    }
}
于 2013-01-16T09:53:08.140 回答
1

The T is the type of the objects that your list will contain. You can write List<String> and use it in a function which needs List<T>, it shouldn't be a problem since the T is used to say that it can be anything.

于 2013-01-17T23:45:37.837 回答
0

您不能直接将“X”(字符串)添加到类型为的列表中,因此您需要编写一个接受 T 作为参数并添加到列表中的函数,例如

List<T> myList = new ArrayList<T>(0);
public void addValue(T t){
  myList.add(t);
}

在调用此函数时,您可以传递字符串。

 object.addValue("X");
于 2013-01-16T10:12:15.187 回答