0

クラスのappend()メソッドを使用して奇妙な問題が発生しています。StringBuilderここに方法があります:

public StringBuilder toStringBuilder(byte[] b)
{
    StringBuilder s = new StringBuilder();
    for (int i = 0; i < b.length; i++) 
        {
            s.append(Integer.toString((b[i] & 0xff) + 0x100,16).substring(1));
        }
    System.out.println(s);
    return s;
}

バイト配列を取り、それをに変換しますStringBuilder(その間に他のことを行います)。

プログラムを実行すると、正しい結果が表示NullPointerExceptionされますが、プログラムの使用を続行できないことも示されます。例外は4行目に示されています

(for (int i = 0; i < b.length; i++))

スクリーンショットは次のとおりです。

スクリーンショット

4

3 に答える 3

0

私のコードで正しく動作している場合は、null として処理する前に b を確認してください。

if(b!=null)
{
for (int i = 0; i < b.length; i++) 
        {
            s.append(Integer.toString((b[i] & 0xff) + 0x100,16).substring(1));
        }
}
于 2013-05-13T13:23:00.673 に答える