我们正在建造一个火车站模拟器,当我们开始创建我们的方法时,我们的出列方法出错了。
类型不匹配:无法从Object转换为Passenger 包SimulateWaitingLine;
public class Station {
private QueueInterface waiting;
private int timeToNextStation;
public Station(int timeToNext){
waiting = new CircularLinkedQueue();
timeToNextStation = timeToNext;
}
public void addPassengers(Passenger rider){
waiting.enqueue(rider);
}
public boolean isWaiting(){
return !waiting.isEmpty();
}
public Passenger getPassenger(){
return waiting.dequeue(); //this is where the error is
}
public int getTimeToNextStation(){
return timeToNextStation;
}
}
这是我们对链接队列的定义 包SimulateWaitingLine;
public class CircularLinkedQueue < T > implements QueueInterface<T>
{
private Node queueNode;
private Node freeNode;
public CircularLinkedQueue()
{
freeNode = new Node();
freeNode.setNextNode(freeNode);
queueNode = freeNode;
}
private class Node
{
private T data;
private Node next;
public T getData() { return data; }
public void setData(T inData) { data = inData; }
public Node getNextNode() { return next; }
public void setNextNode(Node inNext) { next = inNext; }
}
public void enqueue(T newEntry)
{
freeNode.setData(newEntry);
if(isChainFull())
{
Node newNode = new Node();
freeNode.setNextNode(newNode);
}
freeNode = freeNode.getNextNode();
}
@Override
public T dequeue() {
// TODO Auto-generated method stub
T front = getFront();
assert !isEmpty();
queueNode.setData(null);
queueNode = queueNode.getNextNode();
return front;
}
@Override
public T getFront() {
// TODO Auto-generated method stub
T frontNode = null;
if(!isEmpty())
queueNode = queueNode.getNextNode();
return (T) queueNode;
}
public boolean isChainFull() {
return queueNode == freeNode.getNextNode();
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return queueNode == freeNode;
}
@Override
public void clear() {
// TODO Auto-generated method stub
}
}