StringBuilder.append()导致java.lang.NullPointerException

ten*_*nik 0 java stringbuilder nullpointerexception

我正在使用类的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;
}
Run Code Online (Sandbox Code Playgroud)

它需要一个字节数组并将其转换为StringBuilder(同时执行其他操作).

一切似乎没问题,当我运行程序时它打印出正确的结果,但也显示了一个NullPointerException不让我继续使用该程序; 例外指向第四行

(for (int i = 0; i < b.length; i++))
Run Code Online (Sandbox Code Playgroud)

这是一个截图:

截图

Ste*_*n C 5

如果这行:

for (int i = 0; i < b.length; i++) 
Run Code Online (Sandbox Code Playgroud)

抛出一个NPE,只有一个可能的解释. bnull.

您可以通过在for语句之前立即添加此语句来证明(或反驳)这一点.

System.out.println("b is " + b);
Run Code Online (Sandbox Code Playgroud)

一旦你确认,你需要逆向操作弄清楚为什么bnull在这一点上.根据您向我们展示的代码,我无法提供任何见解.