Java:不可转换类型错误(使用数组队列)

惠爱

我正在开发一个模拟餐厅座位系统的程序。我在使方(对象)入队(将对象放入队列中)而在Party Class中使变量不静态时遇到了麻烦,因为如果这样做,那么当我出队时,它会将队列中的所有对象都写成相同。

这是我的主程序代码:

public static void main (String [] args)
    throws IOException
{
    //get name of simulation file from user and "open" that file
    Scanner cin= new Scanner (System.in);

    System.out.println("--- Welcome to the La Food Restaurant Simulator! ---");
    System.out.println("Enter a data file name:");
    String filename= cin.next();

    Scanner fileread= new Scanner(new FileReader (filename));

    Queue Q= new QueueArray(100);

    boolean flag=true;

    while (flag==true)
    {
        char action= fileread.next().charAt(0);
        int seatedtime;
        System.out.println(action); //TESTING PURPOSES ONLY

        //if A read in party and put them in at the back of the queue (enqueue)
        if(action=='A')
        {
            Party p= (Party)Q.enqueue(new Party(fileread));

            System.out.println(p); //TESTING PURPOSES ONLY
            //System.out.println(p.size); // TESTING PURPOSES ONLY
            //System.out.println(p.name); // TESTING PURPOSES ONLY

            //System.out.println("Please wait at the bar, party "+p.name+" of "+p.size+" people.");
        }

        //if T put the party at the front in the queue and remove them (dequeue)
        if(action=='T')
        {
            seatedtime=fileread.nextInt();
            System.out.println(seatedtime); //TESTING PURPOSES ONLY

            Party p2=(Party) Q.dequeue();
            System.out.println(p2.name);

            //need a way to return the front object's (that was dequeued) info (size,name,arrival)
            System.out.println("Table for "+p2.name "!");
        }

        // if Q stop the simulation
        if(action=='Q')
        {
            flag=false;
        }
    }

    System.out.println("---Simulation Terminated---");
    System.out.println("The average waiting time was ");
    System.out.println("The following parties were never seated:");
    //print out info on the unseated party
}
}

这是我的派对类代码:

public class Party
{

int arrival;
int size;
String name;

//constructor of party object
public Party(Scanner file)
{
    arrival=file.nextInt();
    size= file.nextInt();
    name= file.next();
    name= name + file.nextLine();
}
}

这是QueueArrays类中使用的入队方法:

Object [] items; 
int front; 
int back;   
int count; 

public void enqueue(Object x) 
{  
    if(isFull()) return; // do nothing 
    count++; 
    back++; 
    f(back>=items.length) back=0; 
    items[back]=x; 
}

当我尝试编译主程序时,出现错误:

我排队参加聚会的那条路线上不可改变的类型。必填:发现的聚会:无效

如何解决这个问题而不仅仅是使用,Q.enqueue()因为这需要我的Party Class中的变量为静态变量,从而导致覆盖问题?

nyname00

不知道我是否正确回答了您的问题,但是Party p= (Party)Q.enqueue(new Party(fileread));由于您的enqueue方法返回了,因此该行将无法编译void-您无法将其分配给变量。更改为

Party p = new Party();
Q.enqueue(p);

不过,我认为这里没有任何理由保持不变。

顺便说一句,为什么您要实施自己的Queue而不使用Queue<Party> q = new LinkedList<Party>();(从java.util软件包中)类似的东西-这会使您的生活变得容易得多。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数组队列Java

来自分类Dev

Java - isFull 方法循环数组队列

来自分类Dev

实现循环数组队列

来自分类Dev

C++ 循环数组队列 setCapacity

来自分类Dev

Java中的不可转换类型错误

来自分类Dev

java错误:不可转换类型必需int

来自分类Dev

在数组队列上使用包含时,控制台将返回False。为什么?

来自分类Dev

使用PIL获取类型错误转换数组

来自分类Dev

是否可以在C ++中创建对象数组队列?

来自分类Dev

php中的两个数组队列算法

来自分类Dev

在 C++ 中创建一个数组队列

来自分类Dev

我可以使用“ XEP-0142:工作组队列”之类的“延迟” XEP吗?

来自分类Dev

将字符串类型转换为错误是不可预测的

来自分类Dev

不可转换类型Android

来自分类Dev

将数组从可为空的类型转换为相同类型的不可为空的类型?

来自分类Dev

数组中字符串的类型转换在 Java 中引发“未知源错误”

来自分类Dev

类型错误:不可排序的类型

来自分类Dev

Java中的转换或变量类型错误

来自分类Dev

Java:(缺乏)通用类型转换中的错误

来自分类Dev

使用jOOQ转换PostgreSQL UUID数组的类型

来自分类Dev

使用反射转换为数组类型

来自分类Dev

使用数组的通用队列

来自分类Dev

带有受约束的关联类型错误的Swift协议“类型不可转换”

来自分类Dev

使用数组获取“ TypeError:'类型'对象不可下标”

来自分类Dev

Java:方法返回类型为数组错误

来自分类Dev

尝试调用数组上的函数时抛出“数组类型‘int [4]’不可分配”错误

来自分类Dev

Java /在Collection和Object数组之间转换时要使用哪种参数类型?

来自分类Dev

错误:类型不匹配:无法使用 Java Xtend 从 (Object)=>int 转换为 int

来自分类Dev

接口类型的Java队列

Related 相关文章

  1. 1

    数组队列Java

  2. 2

    Java - isFull 方法循环数组队列

  3. 3

    实现循环数组队列

  4. 4

    C++ 循环数组队列 setCapacity

  5. 5

    Java中的不可转换类型错误

  6. 6

    java错误:不可转换类型必需int

  7. 7

    在数组队列上使用包含时,控制台将返回False。为什么?

  8. 8

    使用PIL获取类型错误转换数组

  9. 9

    是否可以在C ++中创建对象数组队列?

  10. 10

    php中的两个数组队列算法

  11. 11

    在 C++ 中创建一个数组队列

  12. 12

    我可以使用“ XEP-0142:工作组队列”之类的“延迟” XEP吗?

  13. 13

    将字符串类型转换为错误是不可预测的

  14. 14

    不可转换类型Android

  15. 15

    将数组从可为空的类型转换为相同类型的不可为空的类型?

  16. 16

    数组中字符串的类型转换在 Java 中引发“未知源错误”

  17. 17

    类型错误:不可排序的类型

  18. 18

    Java中的转换或变量类型错误

  19. 19

    Java:(缺乏)通用类型转换中的错误

  20. 20

    使用jOOQ转换PostgreSQL UUID数组的类型

  21. 21

    使用反射转换为数组类型

  22. 22

    使用数组的通用队列

  23. 23

    带有受约束的关联类型错误的Swift协议“类型不可转换”

  24. 24

    使用数组获取“ TypeError:'类型'对象不可下标”

  25. 25

    Java:方法返回类型为数组错误

  26. 26

    尝试调用数组上的函数时抛出“数组类型‘int [4]’不可分配”错误

  27. 27

    Java /在Collection和Object数组之间转换时要使用哪种参数类型?

  28. 28

    错误:类型不匹配:无法使用 Java Xtend 从 (Object)=>int 转换为 int

  29. 29

    接口类型的Java队列

热门标签

归档