Java 深度复制flatbuffer对象的方法

Java 深度复制flatbuffer对象的方法,java,deep-copy,flatbuffers,Java,Deep Copy,Flatbuffers,我用flatbuffer表示我的数据。目前我遇到了一个问题,我正在将flatbuffer中的一个大对象集合分割成一些小块 直接的方法是为每个片段创建一个flatbuffer构建器,然后将对象写入该构建器。但当对象有点复杂时,逐个复制数据结构是一项相当繁琐的工作 由于flatbuffer存储相对偏移量,理论上我认为可以简单地复制字节缓冲区,将对象复制到另一个flatbuffer实例中。已经有东西可以深度复制了吗?我现在正在使用java。谢谢 谢谢这比您想象的要复杂,因为表及其子表在内存中不一定是连

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

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

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


谢谢

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

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

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