2012-12-26 60 views
0
byteArray = new byte[10000]; 

-- some code here ---- 

byteBuffer.wrap(byteArray); 
for (int i=0; byteBuffer.hasRemaining(); i++) 
{ 
    shortArray[i] = byteBuffer.getShort(); 
    System.out.println(shortArray[i]); 
} 

byteBuffer.hasRemaining()获取与一个NullPointerException标记虽然我已经与背衬阵列提供它。
的NullPointerException在字节缓冲区

  • 这里有什么问题?
  • +3

    在哪里初始化'byteBuffer'? –

    回答

    3

    请检查你如何初始化byteBuffer它应该是这样的,因为wrap是一个静态方法

    byte[] byteArray = new byte[10000];  
    ByteBuffer byteBuffer = ByteBuffer.wrap(byteArray); 
    
    +2

    当你在'null'对象上调用静态方法时会发生什么? –

    +0

    @JanDvorak好吧,我意识到我的错误:)接下来,让短裤离开缓冲区。 'getShort()'是抽象的。 –

    +0

    @JanDvorak,真的不知道。请,让我们现在。 –

    1

    代码似乎确定。我怀疑这是(由于一些错误),因为byteBuffer变量= null

    +2

    hasRemaining'不是静态的,所以在那个点上抛出异常,所以它不是一个bug。 –