Я играю с платформой Android и пытаюсь глубже погрузиться в Java. Для этого я прочитал о Javas Generics и Reflection API, хотя на самом деле я этого не понимаю.
Поскольку я ленивый разработчик;) Я попытался написать «Parcelable-Container», в который я могу поместить ЛЮБОЙ объект, я хочу получить его Parcelable без необходимости повторной реализации этого для каждого объекта с использованием методов Java Reflection.
Я пишу такой метод теста:
public <T> void writeClassInformations(T t){
Class c = t.getClass();
System.out.println("DeclaredFields: ");
for (Field f : c.getDeclaredFields()){
System.out.println(f.toGenericString());
}
System.out.println("Fields: ");
for (Field f: c.getFields()){
System.out.println(f.toGenericString());
}
}
Как я могу получить каждого участника, даже если они являются объектами или частными членами суперкласса?
И еще вопрос: вывод такой:
public int hello.test.Testclass.myID
как я могу получить значение myID?
ADD:
У меня сейчас серьезные проблемы. Интерфейс Parcelable.Creator заставляет меня написать заявление вроде: public static final Parcelable.Creator CREATOR =
new Parcelable.Creator<ParcelableBox<?>>()
Можно ли как-нибудь использовать ?
? Обычно я использую конструктор типа ParcelableBox(E object)
. Хотя мне кажется, что я не могу использовать методы Object в ?
, я даже не могу передать его в переменную класса, такую как
public ParcelableBox<?> createFromParcel(Parcel source){
...
return new ParcelableBox<?>();
}
или ? myClass
, чтобы использовать Reflection на нем. Это конец силы отражения javas? Как я могу получить класс ?