Java 如何使用布尔值创建一个mutator方法

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

我被要求创建一个类,该类使用数组列表实现作业队列。 我们可以将作业和运行时添加到队列中。作业从JobInQueue列表中队列的前面运行,减去myPendingTime,完成的作业进入Finishedjobs列表

看起来我们必须使用布尔变异方法,但我不确定如何创建这个方法。 谁能告诉我怎么做

/**
  * 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…现在如何返回布尔值?太棒了!!非常感谢你。