У меня возникла проблема с инициализацией списка. Класс элементов не известен во время компиляции - они могут быть int, float, string или custom classes.Инициализация общего списка в java
Так что я попытался это:
public class Sensordevice {
private List<?> valueList;
public void setValueList(List<?> valueList) {
this.valueList = valueList;
}
public void addValue(Object value) {
if(valueList == null){
valueList = getList(value.getClass());
}
valueList.add(value);
}
private <T> List<T> getList(Class<T> requiredType) {
return new ArrayList<T>();
}
}
Но я получаю эту ошибку при valueList.add (значение) в AddValue Methode: (? Захвата # 4-в)
Метод добавить в списке типов не применяется для аргументов (Object)
Update
Большое спасибо за ваши ответы. Это решение работает для меня.
public class Sensordevice<T> {
private List<T> valueList;
public void setValueList(List<T> valueList) {
this.valueList = valueList;
}
public void addValue(T value) {
if(valueList == null){
valueList = new ArrayList<T>();
}
valueList.add(value);
}
}
Там нет смысла создавать '' List если он объявлен как '' Список >. –
Bubletan
Почему бы просто не использовать «Список
Я бы посоветовал вам создать класс 'Sensordevice' –
sodik