static class Person {
String name;
ArrayList<Person> friends;
public Person(String name, ArrayList<Person> friends) {
this.name = name;
this.friends = friends;
}
}
static class Converter {
String raw;
Gson gson;
public Converter() {
this.gson = new Gson();
}
public <T> T get(Class<T> cls) {
return gson.fromJson(raw, cls);
}
public void set(String json) {
this.raw = json;
}
}
public static void main(String[] args) {
Gson gson = new Gson();
ArrayList<Person> friends = new ArrayList<>();
friends.add(new Person("craig", new ArrayList<Person>()));
friends.add(new Person("andrew", new ArrayList<Person>()));
Person alex = new Person(
"alex",
friends
);
String rawJson = gson.toJson(alex);
Converter c = new Converter();
c.set(rawJson);
Person p = c.get(Person.class); //This gives an incompatible type error
}
개체를 반환하려고하는 클래스 변환기가 있습니다. 아이디어는 당신이 raw json을주고, (Person.class)를 얻을 때 Person 객체를 얻을 것이다.개체 대신 메서드에서 일반 개체 반환
이것은 기본적인 문제의 예이지만 get() 메서드는 Person 객체가 아닌 Object 만 반환합니다.
나는 저를 위해 작동 한 부호를 시도했다 –
@KevinWallis 그렇습니다 나는 다만 가지고있다. 지금 일하고있는 것 같습니다. 확실하지 않은 이유 –