首页 > 解决方案 > 如果我在 IF 条件语句中使用 buffer.get(),是否需要使用 buffer.rewind()?

问题描述

例子。检查此条件后缓冲区的位置是否移动?

if (variable==buffer.get()) { do something; buffer.rewind() }

标签: javaif-statementintconditional-statementsbuffer

解决方案


既然你指的是 a IntBuffer,那么:的。

的 javadocget()说:

在此缓冲区的当前位置读取 int,然后递增 position

因此,如果该if语句为假,那么缓冲区肯定会移动。

如果if语句为真,则rewind()调用 then,javadoc 说:

位置设置为零并且标记被丢弃。

因此,如果在语句之前位置最初不是零if,那么缓冲区会移回零。

回顾一下:如果缓冲区位置最初位于开头,并且该if语句为真,那么该代码将把缓冲区留在同一位置,否则缓冲区将被“移动”。


推荐阅读