在队列的START处从对象调用方法

时间:2013-03-15 22:32:00

标签: java object methods queue call

在我的Driver类中:

for (systemClock = 0; systemClock < 200; systemClock = (systemClock + 1)){
        if(((inputQueue.query()).arrivalTime()) == systemClock)
            System.out.println(((inputQueue.remove()).removalTime()));
    }

在Job类中:

public int arrivalTime()
{
    return arrivalTime;
}

我的问题在第二行代码中。

if(((inputQueue.query()).arrivalTime()) == systemClock)

在课堂上,我们使用方法QueueObject创建了一个基本的query(),它返回在队列FRONT处找到的对象。每个对象都是一个作业,其中包含各种变量和方法(在这种情况下,重要的是该对象的“到达时间”)。我正在尝试使用这行代码来返回对象,并调用arrivalTime()方法/从这个特定对象中找出到达时间。

编辑:我收到编译错误“无法找到符号 - 方法arrivalTime()”

解决方案编辑: 对不起,混乱/坏帖子的家伙。我道歉。这是我开始工作的解决方案。我不得不将作为Job对象从队列中拉出的对象。

if((((Job)inputQueue.query()).arrivalTime()) == systemClock)

1 个答案:

答案 0 :(得分:0)

尝试删除额外的括号,并且(以防万一)使用不等式:

if (inputQueue.query().arrivalTime() >= systemClock) {
    // ...
}

我假设您的query()方法返回Job对象(如果没有,那么您的Queue设计就会出现问题)。


所以,你的问题是找不到符号。

一些提示:

  1. 是标记为私有的方法arrivalTime()吗?如果是,它应该是公开的。
  2. 该方法返回的类型是什么?它必须与systemClock具有相同的类型,并记住您只能将==与数字一起使用(int,long,double,...)。如果类型与==不可比,则需要创建compareTo()或equals()方法