Hallo,
Ich bin relativ neu im Programmierungsumfeld und habe nun eine Frage. Ich würde gerne nachfolgende Codezeilen in eine Methode auslagern, die ich dann zweimal aufrufen kann.
Im wesentlichen geht es darum ein String return Wert eines RESTful Webservice calls in eine Collection zu überführen mittels GSON. Das spielt aber hier keine Rolle - geht nur darum, wie ich den Code generalisieren kann? Mein Hauptproblem liegt darin, wie ich verschiedene Klassennamen als Attribute in die Methode übergeben kann (generics?)?
Hier die Ausgangssituation (2 mal derselbe Code)
Ich habe an sowas, wie das Folgende gedacht. Aber ich scheine mich hier nicht gut genug auszukennen:
Habe aber keine Ahnung, wie das mit myClass funktionieren soll? Hat das irgendwas mit Generics zu tun? Stehe irgendwie auf dem Schlauch.
Gruß
Stefan
Ich bin relativ neu im Programmierungsumfeld und habe nun eine Frage. Ich würde gerne nachfolgende Codezeilen in eine Methode auslagern, die ich dann zweimal aufrufen kann.
Im wesentlichen geht es darum ein String return Wert eines RESTful Webservice calls in eine Collection zu überführen mittels GSON. Das spielt aber hier keine Rolle - geht nur darum, wie ich den Code generalisieren kann? Mein Hauptproblem liegt darin, wie ich verschiedene Klassennamen als Attribute in die Methode übergeben kann (generics?)?
Hier die Ausgangssituation (2 mal derselbe Code)
Java:
// 1. Call
JsonObject jso = parser.parse(usersResult).getAsJsonObject();
JsonArray array = parser.parse(
jso.get(userListDelimiter).toString()).getAsJsonArray();
ArrayList<User> userList = new ArrayList<User>();
for (JsonElement obj : array) {
User user = gson.fromJson(obj, User.class);
userList.add(user);
}
// 2. Call
JsonObject jsoAuswertun = parser.parse(auswertungResult)
.getAsJsonObject();
JsonArray arrayAuswertung = parser.parse(
jsoAuswertun.get(auswertungListDelimiter).toString())
.getAsJsonArray();
ArrayList<Auswertung> auswertungList = new ArrayList<Auswertung>();
for (JsonElement objAuswertung : arrayAuswertung) {
Auswertung auswertung = gson.fromJson(objAuswertung,
Auswertung.class);
auswertungList.add(auswertung);
}
Ich habe an sowas, wie das Folgende gedacht. Aber ich scheine mich hier nicht gut genug auszukennen:
Java:
public static ArrayList<?> returnCollectionFromString(String restCall,
String delimiter, ?myClass?) {
JsonObject jso = parser.parse(restCall).getAsJsonObject();
JsonArray array = parser.parse(jso.get(delimiter).toString())
.getAsJsonArray();
ArrayList<myClass> collectionList = new ArrayList<myClass>();
for (JsonElement obj : array) {
myClass user = gson.fromJson(obj, myClass.class);
collectionList.add(myClass);
}
return collectionList;
}
Habe aber keine Ahnung, wie das mit myClass funktionieren soll? Hat das irgendwas mit Generics zu tun? Stehe irgendwie auf dem Schlauch.
Gruß
Stefan