-1
while(i<word.length)
{
   ans=swn.extract(word[i], pos[i]);
   if(ans== null)
        polarvalue[i]= " ";
   else
        polarvalue[i]=ans;
   i++;
   System.out.println(ans);
}

嗨,朋友,这是我的代码和 swn.extracts 一个可以为空的值,因此 ANS 包含空值,当我尝试访问它时会给出 NULlPOinterException 有什么方法可以检查 NULL 值并将其更改为任何其他价值。?但是如果我删除了整个 If..else 部分,它不会给出错误并在输出中打印“NULL”......

4

1 回答 1

0

如果我删除整个 If..else 部分,则代码将打印空值。

如果上述情况属实,则意味着您的polarvalue[]数组是null并且您正在尝试ith使用polarvalue[i]这种方式分配位置值,它会引发空指针异常。polarvalue[]在分配之前对数组进行空检查。

你的代码很危险,它似乎可以抛出NPE任何地方

while(i<word.length)   // do a null check
ans=swn.extract(word[i], pos[i]);  // do a null check
polarvalue[i]= " ";  // do a null check
polarvalue[i]=ans;  // do a null check

做一个空检查将需要几分钟,但会减少您最宝贵的时间。

于 2012-11-06T10:58:49.870 回答