调整此缓冲区的容量。如果{@code newCapacity}是 小于当前容量,这个缓冲区的内容是 截断。如果{@code newCapacity}大于当前值 容量,缓冲区附加长度为的未指定数据 {@code(newCapacity - currentCapacity)}。
从上面显示的ByteBuf.capacity(int newCapacity)的评论中, 我们除了扩展它之前将保留此方法之前的ByteBuf的内容。但是这个测试用例失败了。
ByteBuf bb =
PooledByteBufAllocator.DEFAULT.directBuffer().order(
ByteOrder.nativeOrder());
bb.setInt(4, 333);
TestCase.assertEquals(333, bb.getInt(4)); // passed
bb.capacity(4096);
TestCase.assertEquals(333, bb.getInt(4)); // failed
我们断言失败。
junit.framework.AssertionFailedError: expected:<333> but was:<0>
任何人都可以解释它并告诉我如何在不更改内容的情况下放大ByteBuf?
谢谢, 分钟