我正在实现我自己的优先级队列,并使用一个名为 sportsball 的类来使用它。优先级队列基于泛型并使用 Node(T 对象,int 值)(又名玩家姓名及其分数)。当我尝试运行该程序时,出现类转换异常错误。
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LPriorityQueue$Node;
at PriorityQueue.<init>(PriorityQueue.java:35)
at sportsball.main(sportsball.java:48)
有问题的行是: PriorityQueue.java:35:
Node[] array = (Node[])(new Object[initialSize]);
sportsball.java:48:
PriorityQueue<String> queue = new PriorityQueue<String>(start, step);
感谢您的帮助!
注意:
当我尝试使用 PriorityQueue.java:35 行时:
Node[] array = new Node[initialSize];
错误:弹出通用数组创建。
最佳答案
您无法将 Object
转换为 Node
,因此您也不应该将 Object[]
转换为 >节点[]
。只需直接创建Node[]
即可。
Node[] array = new Node[initialSize];
关于java - 类转换异常和泛型(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21862227/