gpt4 book ai didi

java - 线程中出现异常 "main"java.lang.UnsupportedOperationException

转载 作者:行者123 更新时间:2023-12-01 13:20:20 25 4
gpt4 key购买 nike

我正在尝试使用 Java 中的 Native Query 获取有序的车辆列表。

我使用两种方法,第一种方法是获取车辆,第二种方法是订购列表。

我收到此错误:

Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.set(AbstractList.java:132)
at java.util.AbstractList$ListItr.set(AbstractList.java:426)
at java.util.Collections.sort(Collections.java:159)
at Exercici4.AzizElamraniOrdreMatricula(Exercici4.java:246)
at Exercici4.main(Exercici4.java:45)

这是我的代码:

private static final String BBDDFITXER = "fitxer";

public static void main(String[] args)
{
new File(BBDDFITXER).delete();
ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), BBDDFITXER);

try {
Cotxe c3 = new Cotxe("B1432-hk", 10000, true);
Cotxe c1 = new Cotxe("B54w2-hk", 566666, true);
Cotxe c2 = new Cotxe("Bwc345-ABC", 13456, true);
Cotxe c4 = new Cotxe("Ba432th", 10000, true);
Moto m1 = new Moto("B5756474", 1000, 500);
Moto m2 = new Moto("6575-YT", 2345454, 250);

db.store(c3);
db.store(c1);
db.store(c2);
db.store(c4);
db.store(m1);
db.store(m2);

List<Vehicle> vehicles = AzizElamraniOrdreMatricula(db);
consultaVehicles(vehicles);

}finally{
db.close();
}
}

public static List<Vehicle> AzizElamraniNQ3(ObjectContainer db)
{
List<Vehicle> vehicles = db.query(new Predicate<Vehicle>()
{
public boolean match(Vehicle vehicle) {
return vehicle.getKm() < 50000
&& vehicle.getMatricula().startsWith("B");
}
});
return vehicles;
}

public static void consultaVehicles(List<Vehicle> vehicles) {
System.out.println("total: " + vehicles.size());
for (Vehicle v : vehicles) {
System.out.println(v.infoVehicle());
}
}

public static List<Vehicle> AzizElamraniOrdreMatricula(ObjectContainer db) {

List<Vehicle> vehiclesdes = AzizElamraniNQ3(db);
Collections.sort(vehiclesdes);

return vehiclesdes;
}

我做错了什么?

最佳答案

db.query获取的列表不是可修改的列表,Collections.sort会修改该列表以使其排序。要解决此问题,您可以创建一个新列表并对其进行排序。您的方法 AzizElamraniOrdreMatricula 将如下所示:

public static List<Vehicle> AzizElamraniOrdreMatricula(ObjectContainer db) {
List<Vehicle> vehiclesdes = new ArrayList<Vehicle>(AzizElamraniNQ3(db));
Collections.sort(vehiclesdes);

return vehiclesdes;
}

关于java - 线程中出现异常 "main"java.lang.UnsupportedOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22074305/

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