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

Итак, я работаю на Java и хочу объявить общий список.

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

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

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

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

Ответ 1

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

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

Ответ 2

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

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

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

 object.addValue("X");

Ответ 3

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