Hej, chciałem sobie napisać parsera do obiektów JSON na androida, w tym celu uzywam biblioteki GSON do tworzenia obiektów JSON i napisałem prostą metodę parsującą
public List<ObiektJSON> parseGitHub(InputStream stream) {
Gson gson = new Gson();
Type collectionType = new TypeToken<List<ObiektJSON>>() {
}.getType();
Reader jsonReader = new InputStreamReader(stream);
return gson.fromJson(jsonReader, collectionType);
}
Problem w tym że obiektów JSON mam dużo (np ObiektJSON1 , ObiektJSON2 itd) i funkcja do nich wszystkich wygląda identycznie , różni się jedynie typem zwracanej listy, czyli sobie umyśliłem że upakuję to w generyka i będzie gitara
public abstract class GSONparser<T> {
public List<T> parseGitHub(InputStream stream) {
Gson gson = new Gson();
Type collectionType = new TypeToken<List<T>>() {
}.getType();
Reader jsonReader = new InputStreamReader(stream);
return gson.fromJson(jsonReader, collectionType);
}
}
no niestety wszystko dziedziczące po GSONparser zwraca obiekty typu Object a nie typu jaki mu zapodam. Chyba jednak nie do końca kumam generyki. Ktoś może mi podpowiedzieć jak to zrobić poprawnie ? :)
z góry dzięki