我是gson的新手,正在尝试研究如何反序列化对象中的列表。
错误消息提示我为Player创建了InstanceCreator。但是在实施时,我发现反序列化的对象包含一个Player列表,其名称字段设置为“默认值”,而不是从json字符串中选取值。所以我现在想知道这种方法是否正确。
这是我正在研究的模型的简化,但突出了问题所在...
public interface Player {
String name();
}
public class PlayerImpl implements Player {
private String name;
public PlayerImpl(String name) {
this.name = name;
}
public String name() { return this.name; }
}
public interface Team {
...
}
public class TeamImpl implements Team {
String name;
List<Player> players = new ArrayList<>();
public TeamImpl(String teamName) { this.name = teamName; }
...
}
Run Code Online (Sandbox Code Playgroud)
我有一个简单的测试来创建一个拥有2名球员的新球队
Team t = new TeamImpl("teamname");
t.addPlayer(new PlayerImpl("p1"));
t.addPlayer(new PlayerImpl("p2"));
Gson gson = new Gson();
String …Run Code Online (Sandbox Code Playgroud)