-3
String temp_content = null;

while((line = br.readLine())!= null)
{   
    if(temp_content.length() == 0) /* NPE */
    {
         temp_content = line;
    }
    else
    {
        temp_content = temp_content+line;
    } 
}

NullPointerException在上面指示的行得到了一个。用它来 "temp_content.length() == 0"判断字符串是否是错误的null?谁能告诉我为什么?

4

5 回答 5

2

您的代码应该是:

String temp_content = null;

while((line = br.readLine())!= null)
{   
    if(temp_content == null)
    {
     temp_content = line;
    }
    else
    {
        temp_content += line;
    } 
}

使用StringBuilder会使它变得更好:

StringBuilder temp_content = new StringBuilder();

while((line = br.readLine())!= null)
{   

        temp_content.append(line);
}
于 2013-08-04T07:38:18.843 回答
1

temp_content被初始化为null。确保将其初始化为空字符串以避免 NPE

String temp_content = "";
于 2013-08-04T07:12:10.580 回答
1

temp_contentnull,所以调用.length()它就像调用一样null.length(),这会导致NullPointerException. 为了不发生这种情况,您必须对其进行初始化:

temp_context = "";

要确定 aString是否为null,您可以使用:

if (temp_content == null)
于 2013-08-04T07:12:33.403 回答
1

因为temp_contentisnull并且您正在调用instance参考方法null

如果你想知道一个 String 是否为null,那么你需要用它==来验证它。

if (temp_content == null) {
   System.out.println("String is null");
}

每次尝试在空引用instance方法时都会引发NPE 。

注意: 在引用上调用静态方法时不会抛出NPEnull

于 2013-08-04T07:12:41.273 回答
0

您应该初始化您的字符串变量,例如 temp="" 或 temp=new temp(); 当您尝试在空对象中执行任何功能时,您将获得 NPE。

于 2013-08-04T07:25:36.080 回答