I'm experiencing a strange issue using the append()
method of StringBuilder
class; here is the method:
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;
}
It takes a byte array and converts it into a StringBuilder
(doing other stuff in the meanwhile).
Everything seems OK, when I run the program it prints the correct result, but shows also a NullPointerException
that doesn't let me continue using the program; the exception is pointed to the fourth line
(for (int i = 0; i < b.length; i++))
Here is a screenshot:
If this line:
for (int i = 0; i < b.length; i++)
throws an NPE, there is only one possible explanation. b
is null
.
You can prove (or disprove) this by adding this statement immediately before the for
statement.
System.out.println("b is " + b);
Once you've confirmed that, you need to work backwards to figure out why the b
is null
at that point. I can't offer any insights based on the code you've shown us.