it-roy-ru.com

Использование и объявление универсального списка <T>

Поэтому я работаю на Java и хочу объявить универсальный список.

Итак, что я делаю до сих пор это List<T> list = new ArrayList<T>();

Но теперь я хочу добавить элемент. Как я могу это сделать? Как выглядит универсальный элемент?

Я пытался сделать что-то вроде List.add ("x"), чтобы посмотреть, могу ли я добавить строку, но это не работает. 

(Причина, по которой я не объявляю List<String>, заключается в том, что я должен передать этот список в другую функцию, которая принимает только List<T> в качестве аргумента. 

14
user1855952

Вы должны иметь универсальный класс или универсальный метод, как показано ниже:

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");
    }
}
20
PermGenError

T - это тип объектов, которые будет содержать ваш список . Вы можете написать List<String> и использовать его в функции, для которой требуется List<T>, это не должно быть проблемой, поскольку T используется, чтобы сказать, что это может быть что угодно. ,.

0
Cedias

Вы не можете добавить "X" (String) в список, имеющий тип напрямую, так что вам нужно написать функцию, которая принимает T в качестве параметра и добавляет в список, как

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

и при вызове этой функции вы можете передать строку.

 object.addValue("X");
0
Amol