Chronicle Map 支持基元数组吗?

Chronicle Map support for arrays of primitives?

假设我有这样的事情:

 public interface ITest {
    long[] getDataArray();

    void setDataArray(long[] data);
  }

在这种情况下,因为长[]看起来我不能使用

Values.newHeapInstance(ITest.class);

(我收到 field type class [Lnet.openhft.chronicle.core.values.LongValue; is not supported: not a primitive, enum, CharSequence or another value interface 异常)

听起来很奇怪我错过了什么吗?使用此类对象的最佳方法是什么?实现自己的序列化?

Chronicle Values 被设计为固定大小的结构。如果您需要存储一些可变大小的字段 e。 G。 CharSequences(包括字符串)或数组,您应该指定它们可能的最大大小,这个最大大小将始终分配给该字段,因此如果您存储较短的 CharSequences 或数组,您会浪费一些内存 space 作为 unreclmained。

如果那是你需要的,e。 G。如果您所有的数组实际上都具有相同的长度,并且您不会浪费任何 space,或者数组长度略有不同,或者您有时可以浪费一些 space 来获得其他将接口视为 Chronicle 的好处Map的keys or values提供,可以在value接口中有数组字段,如下:

public interface ITest {
    @Array(length=CONSTANT_OR_MAX_ARRAY_LENGTH)
    long getDataAt(int index);
    void setDataAt(int index, long data);
}

https://github.com/OpenHFT/Chronicle-Values#array-fields