Использование и объявление общего списка <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 используется, чтобы сказать, что это может быть что угодно.