我正在Android上使用Tape在Kotlin中制作原型。我正在使用发布到Maven(2.0.0-beta)的最新版本,并且正在使用外部存储中的文件的Android上设置一个最小的ObjectQueue。
我正在实现我的转换器,使其仅使用Jackson来序列化所有内容,因此有时会使用空字节数组调用我的转换器。这是我的转换器的实现
class MyConverter<T>(val forName: String) : ObjectQueue.Converter<MyType<T>> {
private val mapper = ObjectMapper()
override fun from(bytes: ByteArray): MyType<T> {
if (bytes.isEmpty()) {
throw QueueReadException("Why does this happen?")
}
return mapper.readValue<MyType<T>>(bytes, object : TypeReference<MyType<T>>() {})
}
override fun toStream(value: MyType<T>, os: OutputStream) {
os.write(mapper.writeValueAsBytes(value))
}
}
当我尝试使用queue.peek(n)
从队列中读取元素时,我知道它的发生,但是根据queue.size()
并通过查看实际的文件内容,队列中肯定有足够的元素。杰克逊写的一堆json元素。
这是一个新的空白队列文件的屏幕快照。
这是我收到此错误时队列文件的外观的屏幕截图。
我不确定我是否应该期望该队列文件始终清晰易懂,或者始终跨越我定义为项目的范围。
还有其他人看到吗?我们甚至应该使用2.0.0-beta吗?从github问题来看,目前看来该库几乎没有维护。