У меня есть кое-что о родовом приведении для List, но, честно говоря, я не знаю, возможно ли это реализовать.
В моем приложении есть этот фрагмент кода
public String getObjectACombo() {
List<ObjectA> listA = theDAO.getObjectA();
String combo = getCombo(listA, "rootA"); // --> This line
}
public String getObjectBCombo() {
List<ObjectB> listB = theDAO.getObjectB();
String combo = getCombo(listA, "rootA"); // --> This line
}
Сначала я кодировал некоторую подпрограмму для строк, упомянутых как "-> Эта строка".Но оба метода имеют одинаковый алгоритм генерации строки JSON из списка.который был возвращен из базы данных.Поэтому я подумываю заменить их универсальным методом getCombo (List list, String root).Но дело в том, что мне не удалось заставить его работать.
public <T> String getCombo(List<T> list, String root) {
Iterator<T> listItr = list.iterator();
...
while ( listItr.hasNext() ) {
jsonObj.put(list.get(i).toJson()); // --> The Error line
}
}
Произошла ошибка «строки ошибки».И ObjectA.java, и ObjectB.java содержат метод toJson (), но «метод toJson () не определен для типа T» в указанной строке.
Я пытался привести его к (T) и Class.forName (), но ни один из них не сработал.
Есть ли способ обойти эту проблему?Это вообще возможно?