缺少帮助者以Java创建结构向量

我们以以下flatBuffer模式为例:

struct Ipv6 {
    b0: byte;
    b1: byte;
    b2: byte;
    b3: byte;
    b4: byte;
    b5: byte;
    b6: byte;
    b7: byte;
    b8: byte;
    b9: byte;
    b10: byte;
    b11: byte;
    b12: byte;
    b13: byte;
    b14: byte;
    b15: byte;
}

table Ipv6List {
    entries: [Ipv6];
}

root_type Ipv6List;

我遇到的问题是创建一个包含 Ipv6 结构的向量。 flatbuffer 1.11.0 生成的Java类Ipv6List不包括通常的 create 帮助器。阅读文档似乎是通过防止创建临时对象来提高性能的一种设计选择。

看看其他方法,有一个Ipv6List#startEntriesVector静态函数,但没有关联的addXendX函数。这是我正在尝试做的事情:

flatBufferBuilder builder = new flatBufferBuilder();

final byte[] inetaddressBytes =
        Inet6Address.getByName("2a01:e35:2e7a:490:6193:c54c:f740:f907").getaddress();

int ipv6Offset = Ipv6.createIpv6(builder,inetaddressBytes[0],inetaddressBytes[1],inetaddressBytes[2],inetaddressBytes[3],inetaddressBytes[4],inetaddressBytes[5],inetaddressBytes[6],inetaddressBytes[7],inetaddressBytes[8],inetaddressBytes[9],inetaddressBytes[10],inetaddressBytes[11],inetaddressBytes[12],inetaddressBytes[13],inetaddressBytes[14],inetaddressBytes[15]
);

Ipv6List.startEntriesVector(builder,1);

// how to add the IP to the vector ?
// how to end the association and get the vector offset ?
// int ipsVectorOffset = ?;

int ipListOffset = Ipv6List.createIpv6List(builder,ipsVectorOffset);
builder.finish(ipListOffset);
ByteBuffer byteBuffer = builder.dataBuffer();

有什么想法如何创建Ipv6结构的向量并将其与列表关联?

lili1030 回答:缺少帮助者以Java创建结构向量

总是需要内联创建结构,因此操作顺序应为:

Ipv6List.startEntriesVector(builder,1);
Ipv6.createIpv6(builder,..);
o = builder.endVector();
Ipv6List.createIpv6List(builder,o);
本文链接:https://www.f2er.com/2796403.html

大家都在问