0

次のようなクラスがあります。

final ByteBuffer data;

1st_constructor(arg1, arg2, arg3){
     data = ByteBuffer.allocate(8);   
     // Use "put" method to add values to the ByteBuffer
     //.... eg: 2 ints
     //....
}

1st_constructor(arg1, arg2){
    data = ByteBuffer.allocate(12);  
    // Use "put" method to add values to the ByteBuffer
    //.... eg: 3 ints
    //....  
}

「test」と呼ばれるこのクラスからオブジェクトを作成しました。

次に、byte[] を作成しました。

   byte[] buf = new byte[test.data.limit()];

ただし、オブジェクト内の ByteBuffer を byte[] にコピーしようとすると、エラーが発生します。

test.data.get(buf,0,buf.length);

エラーは次のとおりです。

Exception in thread "main" java.nio.BufferUnderflowException
at java.nio.HeapByteBuffer.get(Unknown Source)
at mtp_sender.main(mtp_sender.java:41)

ご協力ありがとうございました。

4

1 に答える 1