Я искал несколько дней о API Reflection в Java. Я хочу получить все объекты из переменной класса Collection внутри переданного объекта.используя отражение для получения объектов из класса коллекции
E.g.
public static <S>void getValue(S s)throws Exception
{
Field[] sourceFields = s.getClass().getDeclaredFields();
for (Field sf : sourceFields)
{
boolean sa = sf.isAccessible();
sf.setAccessible(true);
String targetMethodName = "get" + source.getName().substring(0, 1).toUpperCase()
+ (source.getName().substring(1));
Method m = s.getClass().getMethod(targetMethodName, null) ;
Object ret = m.invoke(s, new Object[] {});
//ret
//check whether it is collection
//if yes
//get its generic type
Type type = f.getGenericType();
//get all the objects inside it
sf.setAccessible(sa);
}
}
Почему вы хотите использовать отражение? Почему простого полиморфизма недостаточно? – Taky
С вашим текущим кодом недостаточно показать, что S может быть коллекцией. Посмотрите на http://docs.oracle.com/javase/tutorial/java/generics/wildcards.html, чтобы увидеть, как ограничить тип S. – brimble2010
S - это всего лишь любой объект, который я хочу получить для каждого поля, включая классы коллекции с их значениями. –