次の行でUnsupportedOperationExceptionがある理由を誰かがとても親切に説明できますか?
System.out.println(ByteBuffer.wrap(new byte [] {'t'、'e'、's'、't'、'\ n'})。asCharBuffer()。array());
の Javadoc を読みましたCharBuffer.array()
か?
すべてCharBuffer
の が によって支えられているわけではありませんchar[]
。 は のビューをとしてByteBuffer.asCharBuffer()
返すため、その結果は によってサポートされます。ByteBuffer
CharBuffer
byte[]
array()
char[]
実際にバッファをバックアップするのみを返し、存在しない場合は UOE をスローします。あなたが得ることができる最も近い代替手段は次のようなものです
char[] result = new char[charBuf.remaining()];
charBuf.get(result);
asCharBuffer は a をラップしchar[]
ないため、取得できませんarray()
あなたがやろうとしていることは明らかです。
System.out.println(Arrays.toString("test\n".toCharArray()));