当前位置: 代码迷 >> J2SE >> 为什么这里会抛出错误呢
  详细解决方案

为什么这里会抛出错误呢

热度:239   发布时间:2016-04-24 18:01:14.0
为什么这里会抛出异常呢?
import   java.nio.*;
//import   java.util.*;

public   class   UsingBuffers
{
public   static   void   changePos(CharBuffer   cb)
{
while(cb.hasRemaining())
{
cb.mark();
char   c1=cb.get();
char   c2=cb.get();
cb.reset();
cb.put(c2).put(c1);
}
}
public   static   void   main(String[]   args)
{
//ByteBuffer   buf=ByteBuffer.allocate(1024);
CharBuffer   cb=CharBuffer.wrap( "ababab ");
//cb.put( "ababab ");
changePos((CharBuffer)cb.rewind());
System.out.println((CharBuffer)cb.rewind());
}
}
调用该static方法就会抛出异常,不调用则不会,这是怎么回事啊?

------解决方案--------------------
因为传入的CharBuffer是ReadOnly的,不能被put
  相关解决方案