Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;java.lang.NullPointerException“;错误_Java_Nullpointerexception_Bluej - Fatal编程技术网

&引用;java.lang.NullPointerException“;错误

&引用;java.lang.NullPointerException“;错误,java,nullpointerexception,bluej,Java,Nullpointerexception,Bluej,我收到一个错误“java.lang.NullPointerException”,而BlueJ似乎无法告诉我该错误的含义。下面是出现错误的代码: public int getJobsWaiting() { int count = 0; int i = 0; while (count < jobList.size()) { Job temp = jobList.get(i); if(jobList.get(count).isC

我收到一个错误“java.lang.NullPointerException”,而BlueJ似乎无法告诉我该错误的含义。下面是出现错误的代码:

public int getJobsWaiting()
{
    int count = 0;
    int i = 0;

    while (count < jobList.size())
    {
        Job temp = jobList.get(i);

        if(jobList.get(count).isCompleted() != true)
        {
            count = count + 1;
        }
        i = i + 1;
    }
    return count;
}
public int getJobsWaiting()
{
整数计数=0;
int i=0;
while(count
要么
作业列表
要么
作业列表.get(count)
null
。如果您尝试在
null
上调用一个方法(在您的示例中:
size()
isCompleted()
),您会得到一个
NullPointerException

试试看,它的代码更少,只有作业列表可以为null

int count = 0;
for (Job tmpJob : jobList) {
  if (!tmpJob.isCompleted())
  count++;
}

return count;

你的代码很难理解。不使用可变温度

这样,如果作业已完成,则不会执行计数+1,而while也不会结束

if(jobList.get(count).isCompleted() != true)
{
   count = count + 1;
}
检查这是否有帮助:

public int getJobsWaiting(List<Job> jobList) {
    int count = 0;
    for (int i = 0; i < jobList.size(); i++) {
        Job temp = jobList.get(i);
        if (temp != null && !temp.isCompleted()) {
            count++;
        }
    }
    return count;
}
public int getJobsWaiting(列出作业列表){
整数计数=0;
对于(int i=0;i
某些内容是
null
。当您尝试调用方法或访问
null
的某个对象的成员变量时,会得到
NullPointerException
。异常发生在哪一行?这是一个标准的Java错误,指示对象为
null
(即nothing),但正在尝试取消引用(使用
)。它是否告诉您发生错误的确切行?您是否初始化了作业列表?错误出现在哪一行?错误出现在“while(counttrue进行比较,表达式
if(something!=true)
可以更清楚地写成
if(!something)
isCompleted()
也可以是
null
(如果它是
boolean
)@MarounMaroun,实际上它可以
if(test()!=true)
将在
test()
返回
null
,但不是装箱的
布尔值时抛出NPE:)@kocko非常感谢:)我错过了它。在使用该代码后仍然会出现“java.lang.NullPointerException”错误,那么您的作业列表是空的……查看您在何处实例化作业列表或使用getJobsWaiting()方法实例化类会很有用