gpt4 book ai didi

java - Collections.sort 方法抛出类 java.lang.Integer 无法转换为类 java.lang.Double 错误

转载 作者:行者123 更新时间:2023-12-02 02:25:11 24 4
gpt4 key购买 nike

我从基于 Karate 的 API 自动化中的 JSON 响应获取一些运行时值。我将它们存储到 ArrayList 中,例如:

   * def ArrayList = Java.type('java.util.ArrayList')
* def Collections = Java.type('java.util.Collections')
ArrayList al = new ArrayList();
* eval for(var i = 0; i < actualPrice.length; i++) expectedPrice.add(actualPrice[i])

当我打印列表时,输出是:

[-150, -210, -100, -112.5]

上面的输出,当我在 Collections.sort(al) 的帮助下应用排序时,它抛出了以下错误:

class java.lang.Integer cannot be cast to class java. lang.Double (java.lang.Integer and java.lang. Double is in module java.base of loader.

我需要在 Karate 功能文件中使用升序/降序排序。有人可以帮我吗?

Java 等效代码是:

    ArrayList al = new ArrayList();
al.add(-150);
al.add(-210);
al.add(-100);
al.add(-112.5);
System.out.println(al);
Collections.sort(al);

最佳答案

您正在添加 IntegerDouble相同List 。当排序方法尝试比较Integer时到 Double它尝试转换 IntegerDouble ,失败了。

不要使用原始类型。如果需要将 double 值添加到 List ,使用List<Double> :

List<Double> al = new ArrayList<>();
al.add(-150.0);
al.add(-210.0);
al.add(-100.0);
al.add(-112.5);
System.out.println(al);
Collections.sort(al);

这样你的 List 的所有元素将是相同类型,并且 Collections.sort()将它们相互比较不会有困难。

关于java - Collections.sort 方法抛出类 java.lang.Integer 无法转换为类 java.lang.Double 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65788369/

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