Java 如何使用布尔值创建一个mutator方法
我被要求创建一个类,该类使用数组列表实现作业队列。 我们可以将作业和运行时添加到队列中。作业从JobInQueue列表中队列的前面运行,减去myPendingTime,完成的作业进入Finishedjobs列表 看起来我们必须使用布尔变异方法,但我不确定如何创建这个方法。 谁能告诉我怎么做Java 如何使用布尔值创建一个mutator方法,java,arraylist,bluej,Java,Arraylist,Bluej,我被要求创建一个类,该类使用数组列表实现作业队列。 我们可以将作业和运行时添加到队列中。作业从JobInQueue列表中队列的前面运行,减去myPendingTime,完成的作业进入Finishedjobs列表 看起来我们必须使用布尔变异方法,但我不确定如何创建这个方法。 谁能告诉我怎么做 /** * runs the first job on the queue if there is enough time on the clock. */ public boolean runJob
/**
* runs the first job on the queue if there is enough time on the clock.
*/
public boolean runJob()
{
boolean jobDone = runJob();
if(myJobInQueue.isEmpty() && myDuration > myPendingTime){
myDuration-= myPendingTime;
myJobInQueue.remove(0);
myFinishedJobs.add(myJobInQueue.get(0));
System.out.println("The job runing is : "+ myJobInQueue.get(0));
jobDone=true;
}
return jobDone ;
}
根据您的输入,请在下面查找更新的程序:
public void runJob(){
boolean jobDone = false;
if(!myJobInQueue.isEmpty() && myDuration > myPendingTime){
myDuration-= myPendingTime;
myFinishedJobs.add(myJobInQueue.get(0));
myJobInQueue.remove(0);
System.out.println("The job runing is : "+ myJobInQueue.get(0));
jobDone=true;
}
if(!jobDone ){
runJob();
}
}
另外,我相信您要检查,
myJobInQueue
不是空的,即如果(!myJobInQueue.isEmpty()&&myDuration>myPendingTime)
您的第一行方法将在最大递归深度中创建无限递归结果。您将在放入完成的队列之前从队列中删除作业。它应该是相反的,即myJobInQueue.remove(0)
应该在myFinishedJobs.add(myJobInQueue.get(0))之后
。使方法返回为void
,更改布尔jobDone=false从顶部编码>并将此如果(!jobDone){runJob();}
放在底部。删除return jobDone
行。感谢您的回答,我已经替换了myJobInQueue…现在如何返回布尔值?太棒了!!非常感谢你。