【发布时间】:2013-12-21 10:06:29
【问题描述】:
我正在尝试将Game 对象从服务器发送到 GWT 中的客户端。此 Game 对象仅包含 Player 的列表:
public class Game implements Serializable {
private List<Player> players;
}
Player 是一个简单的 Pojo,其中包含玩家的状态,例如名称、剩余生命等。
public class Player implements Serializable {
private String name;
private int numberOfGamesPlayed;
private double hp, initialHp;
}
不过,游戏也可以包含CpuPlayer,即带有附加人工智能逻辑的Player
public class CpuPlayer extends Player {
private PlayerIntelligence intelligence; // Not serializable
}
Game 和 Player 对象都在我的“共享”包中,应该在服务器端和客户端使用。
但是,CpuPlayer 包含许多内部处理数据,并且纯粹是服务器端的。因此不包含在 GWT 序列化白名单中。
我想做的是将CpuPlayer 作为Player 发送给客户端,即在序列化过程中屏蔽所有子类特性。
这种方法合理吗?有没有办法做到这一点?我查看了自定义序列化,但它似乎并没有那样工作(我需要一个一个地序列化所有字段)。
感谢您的帮助,
塞巴斯蒂安
【问题讨论】:
标签: gwt serialization