有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

深入复制flatbuffer对象的java方法

我用flatbuffer表示我的数据。目前我遇到了一个问题,我正在将flatbuffer中的一个大对象集合分割成一些小块

直接的方法是为每个片段创建一个flatbuffer构建器,然后将对象写入该构建器。但当对象有点复杂时,逐个复制数据结构是一项相当繁琐的工作

由于flatbuffer存储相对偏移量,理论上我认为可以简单地复制字节缓冲区,将对象复制到另一个flatbuffer实例中。已经有东西可以深度复制了吗?我现在正在使用java。谢谢

谢谢


共 (1) 个答案

  1. # 1 楼答案

    这比您想象的要复杂,因为一个表及其子表在内存中不一定是连续的,并且可能与其他表共享vtable,等等

    最简单的方法是使用嵌套的FlatBuffers(将子对象粘贴到字节向量中),因为这样它就很容易被复制

    在C++中使用反射的深度复制函数,但是它很慢,需要二进制模式文件,还没有被移植到java。新的“迷你反射”表将适用于深拷贝,但也仅限于C++。p>