2012-12-26 51 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。 –