可能有人会这么好心来解释为什么以下行我有UnsupportedOperationException异常?
的System.out.println(。ByteBuffer.wrap(新字节[] { 'T', 'E', 'S', 'T', '\ n'})asCharBuffer()数组());
可能有人会这么好心来解释为什么以下行我有UnsupportedOperationException异常?
的System.out.println(。ByteBuffer.wrap(新字节[] { 'T', 'E', 'S', 'T', '\ n'})asCharBuffer()数组());
该asCharBuffer不包裹一个char[]
所以不能获得其array()
看样子你正在尝试做的是什么。
System.out.println(Arrays.toString("test\n".toCharArray()));
你读的Javadoc CharBuffer.array()
并非所有CharBuffer
S被一个支持char[]
ByteBuffer.asCharBuffer()
返回的视图 ByteBuffer
作为CharBuffer
,所以其结果是由一支持byte[]
array()
只返回char[]
实际上备份的缓冲器,并且如果不存在,它将引发UOE。 你就可以得到的最接近的替代产品是一样的东西
char[] result = new char[charBuf.remaining()];
charBuf.get(result);