3

次の行でUnsupportedOperationExceptionがある理由を誰かがとても親切に説明できますか?

System.out.println(ByteBuffer.wrap(new byte [] {'t'、'e'、's'、't'、'\ n'})。asCharBuffer()。array());

4

2 に答える 2

3

の Javadoc を読みましたCharBuffer.array()か?

すべてCharBufferの が によって支えられているわけではありませんchar[]は のビューをとしてByteBuffer.asCharBuffer()返すため、その結果は によってサポートされます。ByteBufferCharBufferbyte[]

array()char[]実際にバッファをバックアップするのみを返し、存在しない場合は UOE をスローします。あなたが得ることができる最も近い代替手段は次のようなものです

char[] result = new char[charBuf.remaining()];
charBuf.get(result);
于 2012-08-01T14:49:44.197 に答える
3

asCharBuffer は a をラップしchar[]ないため、取得できませんarray()

あなたがやろうとしていることは明らかです。

System.out.println(Arrays.toString("test\n".toCharArray()));
于 2012-08-01T14:45:45.970 に答える