首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将反序列化的对象与其原始对象合并

将反序列化的对象与其原始对象合并
EN

Stack Overflow用户
提问于 2013-03-04 11:43:50
回答 1查看 59关注 0票数 0

我正在为java中的一个游戏实现一个使用UDP套接字的客户端服务器协议。我将用户输入从客户端发送到服务器,服务器处理输入并更新包含玩家和其他游戏对象的关卡对象。我正在序列化Level对象(它还包含瞬态属性以保持较小的大小),并将其发送到客户端。我希望将从服务器接收的Level对象与客户端上的Level对象合并,因为从服务器接收的Level对象的瞬态属性将具有空值。除了手动重建一个完整的最新级别的对象之外,还有什么好方法可以做到这一点吗?谢谢!

EN

Stack Overflow用户

发布于 2013-03-04 12:03:46

假设您的对象是具有getter和setter属性的“标准”java,Spring的BeanUtils class中有几个实用方法可以提供帮助。这两种方法都命名为copyProperties,并且都用于将属性从一个对象复制到另一个对象。One of the methods允许您指定属性的白名单,而the other允许您指定黑名单。使用这些方法,您可以定义一个接口或属性列表,这些属性应该或不应该复制到从服务器接收到的级别上,然后为您完成复制--类似于:

代码语言:javascript
运行
复制
interface LevelPropertiesToMerge {
    void setPropertyOne(String something);
    void setPropertyTwo(int somethingElse);
}

// serialization code on client
Level fromServer = ...;
Level fromClient = ...;
BeanUtils.copyProperties(fromClient, fromServer, LevelPropertiesToMerge.class);

或者:

代码语言:javascript
运行
复制
// serialization code on client
Level fromServer = ...;
Level fromClient = ...;
BeanUtils.copyProperties(fromClient, fromServer,
    new String[] {"propertyOneToIgnore", "propertyTwoToIgnore"});
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15194233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档