このバッファの容量を調整します。{@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 を拡大する方法を教えてもらえますか?
ありがとう、ミン