&引用;java.lang.NullPointerException“;错误
我收到一个错误“java.lang.NullPointerException”,而BlueJ似乎无法告诉我该错误的含义。下面是出现错误的代码:&引用;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
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()方法实例化类会很有用