Я немного запутался в том, как работают Generics Java, и я надеюсь, что кто-то может помочь мне понять немного лучше.Список литейного типа Java
Я вызываю метод из другого класса ... Вот метод, который я вызываю.
public List<?> getPagedList() throws Exception;
Когда я называю этот метод, как так
myList = (List<Trade>) getPagedList();
я получаю предупреждение о том, типобезопасности непроверенного броска.
Я попытался изменить способ этого
<T> T getPagedList(Class<T> myClass) throws Exception;
Но я не могу показаться, чтобы получить объект класса из списка, как этот
getPagedList((List<Trade>).class
Любые идеи или направления я могу начать обучение?
EDIT ---- Класс
public class Pagination{
private static final int MAX_PAGE_LENGTH = 20;
private static final int MAX_PAGES = 5;
private int currentPage;
private List list;
public Pagination(List<?> list, String currentPage){
this.list = list;
if(currentPage == null)
this.currentPage = 1;
else
this.currentPage = Integer.parseInt(currentPage);
}
public <T> List<T> getPagedList() throws Exception{
if(currentPage * MAX_PAGE_LENGTH + MAX_PAGE_LENGTH > list.size()){
return list.subList(currentPage*MAX_PAGE_LENGTH, list.size());
}else{
return list.subList(currentPage * MAX_PAGE_LENGTH, currentPage * MAX_PAGE_LENGTH + MAX_PAGE_LENGTH);
}
}
}
Мой Зов
List<Trade> ts = (Some Code to put objects in ts)
Pagination paging = new Pagination(ts, currentPage);
List<Trade> ts = paging.getPagedList();
Что об этом? ' Список getPagedList() throws Exception;' и вызов его с помощью 'List trades = getPagedList()' –
MT0
Что-то здесь _going_ является небезопасным, если вы фактически не рассматриваете 'List >' как список, элементы которого имеют некоторые случайные неизвестный тип. –
Тип предупреждения о безопасности здесь на самом деле говорит: «Я не несу ответственности за гарантию того, что это кастинг будет работать», но если вы знаете, что вы всегда будете передавать объект списка, это должно быть хорошо. Перед Java 1.5 существует много базового кода, который использовал такой тип кастинга, и они все еще работают даже после перехода на java 1.7. – ha9u63ar