-1

在我的驱动程序类中:

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)

在课堂上,我们制作了一个 basic QueueObject,带有一个query()返回在队列前面找到的对象的方法。每个对象都是一个作业,其中包含各种变量和方法(在这种情况下,重要的是该对象的“到达时间”)。我试图让这行代码返回对象,并调用该arrivalTime()方法/从这个特定对象中找出到达时间。

编辑:我收到编译错误“找不到符号 - 方法到达时间()”

解决方案编辑:很抱歉造成混乱/糟糕的帖子。我道歉。这是我必须工作的解决方案。我必须将被拉出队列的对象作为 Job 对象。

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

1 回答 1

0

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

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

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


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

一些技巧:

  1. 方法到达时间()是否标记为私有?如果是,它应该是公开的。
  2. 方法返回的类型是什么?它必须与 systemClock 具有相同的类型,并且记住您只能将 == 用于数字(int、long、double、...)。如果类型不能与 == 进行比较,则需要创建 compareTo() 或 equals() 方法
于 2013-03-15T22:38:31.780 回答