【问题标题】:Do I need to use buffer.rewind() if I'm using buffer.get() in a IF conditional statement?如果我在 IF 条件语句中使用 buffer.get(),是否需要使用 buffer.rewind()?
【发布时间】:2019-08-11 18:33:10
【问题描述】:

示例。检查这个条件后缓冲区的位置会移动吗?

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

【问题讨论】:

  • 您需要提供更多信息。什么是缓冲区,你在检查什么。这是一个不完整的问题。请使用适当的详细信息进行更新,以便得到解答。
  • 它是一个 intbuffer。

标签: java if-statement int conditional-statements buffer


【解决方案1】:

既然您指的是IntBuffer,那么:是的。

get() 的 javadoc 说:

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

所以如果if 语句为假,那么缓冲区肯定会移动。

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

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

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

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

【讨论】:

  • 谢谢安德烈亚斯。正是我所追求的。
  • 我知道这个问题很差,我会尽快删除它,但我得到了我想要的答案。
猜你喜欢
  • 2016-07-17
  • 2023-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
相关资源
最近更新 更多