没有关于如何通过protostuff
序列化基本类型数组的示例。我也想知道哪种方式最有效。
首先,我编写如下代码:
long[] array = {1L, 2L, 3L};
Schema<long[]> schema = RuntimeSchema.getSchema(long[].class);
ProtobufIOUtil.toByteArray(array, schema, buffer);
例外是:
Exception in thread "main" java.lang.RuntimeException: The root object can neither be an abstract class nor interface: "[J
at io.protostuff.runtime.RuntimeSchema.createFrom(RuntimeSchema.java:210)
at io.protostuff.runtime.RuntimeSchema.createFrom(RuntimeSchema.java:187)
at io.protostuff.runtime.IdStrategy.newSchema(IdStrategy.java:116)
at io.protostuff.runtime.DefaultIdStrategy$Lazy.getSchema(DefaultIdStrategy.java:708)
at io.protostuff.runtime.RuntimeSchema.getSchema(RuntimeSchema.java:149)
at io.protostuff.runtime.RuntimeSchema.getSchema(RuntimeSchema.java:140)
at kryo.demo.UserCompareKryoAndProtostuff.testProtostuff(UserCompareKryoAndProtostuff.java:66)
at kryo.demo.UserCompareKryoAndProtostuff.main(UserCompareKryoAndProtostuff.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
我快速阅读ArraySchemas
代码,我不知道。