java - 类转换异常和泛型(java)

标签 java generics classcastexception

我正在实现我自己的优先级队列,并使用一个名为 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/

相关文章:

java - 创建逐步验证

c# - 为什么不能从扩展方法的使用中推断出类型?

android - 在Android上对同一类进行类转换异常

java - java中上传特定文件到文件夹(FTP)

java - 为@Transactional 方法禁用警告 "Access can be package-private"

java - 在 Java 中查找正则表达式模式的所有匹配项 - 甚至是重叠的

java - 在 Java 中实例化泛型类

arrays - Swift:扩展 [<SomeType<T>?] 以生成 [<T>?] 可能吗?

maven - Tomcat 将 servlet 转换为 javax.servlet.Servlet 而不是 jakarta.servlet.http.HttpServlet

java - 为什么Java在读取LinkedHashMap时会自动从String转换为Integer