append()导致java.lang.NullPointerException
我在使用append()导致java.lang.NullPointerException,java,nullpointerexception,stringbuilder,Java,Nullpointerexception,Stringbuilder,我在使用StringBuilder类的append()方法时遇到了一个奇怪的问题;方法如下: public StringBuilder toStringBuilder(byte[] b) { StringBuilder s = new StringBuilder(); for (int i = 0; i < b.length; i++) { s.append(Integer.toString((b[i] & 0xff) +
StringBuilder
类的append()
方法时遇到了一个奇怪的问题;方法如下:
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;
}
以下是一个屏幕截图:
它在我的代码中工作正常,在处理它之前检查b是否为空
if(b!=null)
{
for (int i = 0; i < b.length; i++)
{
s.append(Integer.toString((b[i] & 0xff) + 0x100,16).substring(1));
}
}
如果(b!=null)
{
for(int i=0;i
它在我的代码中工作正常,在处理它之前检查b是否为空
if(b!=null)
{
for (int i = 0; i < b.length; i++)
{
s.append(Integer.toString((b[i] & 0xff) + 0x100,16).substring(1));
}
}
如果(b!=null)
{
for(int i=0;i
如果此行:
for (int i = 0; i < b.length; i++)
一旦您确认了这一点,您就需要反向工作,以找出b
在该点为null
的原因。基于您向我们展示的代码,我无法提供任何见解。如果这一行:
for (int i = 0; i < b.length; i++)
一旦您确认了这一点,您就需要反向工作,以找出b
在该点为null
的原因。根据您向我们展示的代码,我无法提供任何见解。请尝试在长度后添加()括号,如下所示:
for (int i = 0; i < b.length(); i++)
{
for(int i=0;i
尝试在长度后添加()括号,如下所示:
for (int i = 0; i < b.length(); i++)
{
for(int i=0;i
在该位置唯一可以为null的是b
。检查方法的调用方…b不是null…下面是调用:String out[]=new String[2];out[0]=toStringBuilder(message)。toString();其中消息是由16个元素组成的字节数组;这是一个打印:4-5281-12226-28110-74-11251-103041224117@tenik堆栈跟踪中的错误位于第165行:for(int i=0;i==>b
为空。您正在将消息
传递给b
。这里,消息
为空
,导致b
为空
。好吧……它似乎不是空的,在那个地方唯一可以为空的是b
。检查方法的调用方……b不是空的……这是call:String out[]=new String[2];out[0]=toStringBuilder(message).toString();其中message是由16个元素组成的字节数组;这里有一个打印:4-5281-12226-28110-74-11251-103041224117@tenik堆栈跟踪中的错误位于第165行:for(int i=0;i
==>b
为空。您正在将消息
传递给b
。此处,消息
为空
,导致b
为空
。嗯……它似乎不是空的