Я googled вокруг, и я не мог понять, как это сделать. Я пытаюсь добавить элементы в список вроде этого: List<?>
. Мой код выглядит примерно так:Java | Добавление элементов в список <?>
public class Test {
private List<?> list;
public Test(List<?> useThisList) {
this.list = useThisList;
}
public void add(Object add) {
this.list.add(add); // this won't compile
}
}
Однако, как прокомментировал, этот код не будет компилироваться. Я попытался изменить его на что-то вроде:
public void add(? add) {
this.list.add(add);
}
Но это не скомпилируется по более очевидным причинам. Кто-нибудь знает, что мне нужно, чтобы изменить это, чтобы он функционировал правильно? Заранее спасибо!
Кстати, когда он делает работу, вы должны быть в состоянии сделать это:
List<String> list = new ArrayList<String>();
new Test(list).add("hello");
Ну, если вы не знаете список, который у вас есть, откуда вы знаете, что можете добавить 'add' к нему? Возможно, ваш класс 'Test' должен быть общим ... –
Я бы посоветовал вам прочитать эффективное java 2nd edition Джошуа Блохсом и обратиться к вопросу о дженериках. Это дает представление о том, как эффективно использовать дженерики/дикие животные –