1

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

ありがとう、ミン

4

1 に答える 1