是否有一种绝对可靠的方法来检测 ByteBuffer 是否需要翻转?
我有一个 ByteBuffer 用于打包和解包数据结构,也用于存储要打包/解包的字节。
但是,如果刚刚执行了写入操作或执行了读取操作,或者如果将 ByteBuffer 传递给我的代码,我无法保证缓冲区处于写入模式或读取模式,而无需手动操作位置和限制。
部分读取和写入也增加了这个问题。我一直在采用这样的约定,即缓冲区处于写入模式,并创建一个副本并翻转以用于读取目的。当将缓冲区传递给我的代码时,会手动检查并设置位置和限制,就像它们处于写入模式一样。肯定有更好的方法。