gpt4 book ai didi

java - 无法将 String[] 对象放入我的队列

转载 作者:行者123 更新时间:2023-12-01 07:06:48 24 4
gpt4 key购买 nike


我收到此错误 java.lang.ClassCastException: [Ljava.lang.String;无法转换为 java.lang.Comparable

这是有问题的代码。

final String[] methods = parseRule.getMethods();
// add to the param.
methodsToInsert.add(methods); // <-- error from here

//Where
public String[] getMethods() {
return new String[]{new String(parseMethod), new String(unParseMethod)};
}

//and param
Queue<String[]> methodsToInsert

//and at some point the methodsToInsert Object is
new PriorityQueue<String[]>();

我不太确定为什么?有什么建议

<小时/>

谢谢

哇,谢谢大家,我认为在以前的重构队列中是需要的,但随着它的发展,它不再需要了,感谢您提供的信息以及如何使用比较器进行修复。由于不再需要 PriorityQueue,我将返回到 List<>。

最佳答案

一个PriorityQueue必须以某种方式对其元素进行排序,要么接受 Comparator在其构造函数中,或依赖其元素 Comparable .

来自 PriorityQueue javadocs :

The elements of the priority queue are ordered according to their natural ordering, or by a Comparator provided at queue construction time, depending on which constructor is used. A priority queue does not permit null elements. A priority queue relying on natural ordering also does not permit insertion of non-comparable objects (doing so may result in ClassCastException).

您尚未提供Comparator ,因此它期望添加的所有元素为 Comparable ,但数组不是 Comparable .

提供您自己的Comparator<String[]>使用the PriorityQueue constructor that takes a Comparator .

关于java - 无法将 String[] 对象放入我的队列<String[]>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22102837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com