Я хочу создать метод на Java, который: когда я передаю параметр любого типа класса, он создает новый Список этого типа, действуя как генерирование динамического списка, то с любым другим методом заполните этот список (это не имеет большого значения) и, наконец, верните этот список, заполненный элементами этого типа класса (из списка). Я хочу, чтобы достичь чего-то большеменьше этот пример:Создайте новый объект из заданного типа, переданного как параметр
public List<fooClass> returnResultsList(Class fooClass) {
List<fooClass> newList = new ArrayList<fooClass>();
newList = fillWithResults(); // Pretty sure elements added here are fooClass type.
return (List<fooClass>) newList;
}
Я не знаю, если я должен использовать отражение. Я пытался сделать что-то вроде List<fooClass.class> ....
Или List<instanceof(fooClass)> ....
Или List<typeof(fooClass)>
Или List<fooClass.newInstace()>
без успеха и много ошибок компилятора :(
EDIT 1:
Метод fillWithResults()
возвращает java.util.List
объект, так что может быть применена к любому типу или классу. На самом деле, мне неважно, насколько этот список заполнен. Вопрос заключается в том, как создать новый объект класса, переданного как параметр.
EDIT 2:
я достиг чего-то вроде этого без ошибок компилятора, но я не уверен, если это работает:
public <T> List<T> returnResultsList(Class<T> fooClass) {
List<T> newList = new ArrayList<T>();
newList = (List<T>) this.fillWithResults();
// Do something else...
return newList;
}
Любая помощь или объяснения будут оценены ,
Заранее благодарен!
Чтобы получить полный ответ, вам, вероятно, придется предоставить код для 'fillWithResults'. –
Мог ли ваш вопрос на самом деле быть [проблема XY] (http://mywiki.wooledge.org/XyProblem), где вы спрашиваете «как мне исправить эту проблему с кодом», когда лучшим решением является использование другого подхода полностью? Может быть. Подумайте, расскажите нам общую проблему, которую вы пытаетесь решить, а не как пытаетесь ее решить. –