gpt4 book ai didi

java.lang.ClassCastException : java. util.Vector 无法转换为我的类

转载 作者:行者123 更新时间:2023-12-01 18:26:21 24 4
gpt4 key购买 nike

我使用 for 和查询来获取一些行,最后将所有这些行添加到一个类的一个 Arraylist 中。但我收到以下错误:

java.lang.ClassCastException: java.util.Vector cannot be cast to com.dominion.procop.agr.util.AGRSalvaguardasInforme
at (pathofmyclass).mostrarInformeActivosAGR(AGRInformes.java:1130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)

这些行是这些(标有 $ 的是 AGRInformes.java:1130):

            for (int i = 0; i < InformeAmenazasAGR.size()-1; i++) {
String Amenaza = InformeAmenazasAGR.get(i).toString();
Amenaza = Amenaza.substring(1,3);
List<AGRSalvaguardasInforme> resultadoQuery = (List<AGRSalvaguardasInforme>) manager.SalvaguardaPorAmenaza(Amenaza);

if(!resultadoQuery.isEmpty() ){
$ for (AGRSalvaguardasInforme salvaguardaExtraida : resultadoQuery) {
InformeSalvaguardasAGR.add(salvaguardaExtraida);
}
}
}

这是 manager.SalvaguardaPorAmenaza() 方法(查询并返回对象):

public List<AGRSalvaguardasInforme> SalvaguardaPorAmenaza(String idAmenaza) {
// SALVAGUARDAS POR ID_AMENAZA
int dimension = 0;
String consulta = "";
if(dimension!=0){
consulta = "SELECT COALESCE(MFT.ID_AMENAZA, MFA.ID_AMENAZA) as ID_AMENAZA, SAL.ID_SALVAGUARDA, SAL.DENOMINACION, SAL.DESCRIPCION, SAL.EFICACIA FROM AGR_SALVAGUARDAS SAL LEFT JOIN AGR_MIT_FREC_TIPO MFT "
+ " ON SAL.ID_SALVAGUARDA = MFT.ID_SALVAGUARDA AND MFT.ID_AMENAZA = "+idAmenaza+" "
+ " LEFT JOIN AGR_MIT_FREC_ACT MFA "
+ " ON SAL.ID_SALVAGUARDA = MFA.ID_SALVAGUARDA AND MFA.ID_AMENAZA = "+idAmenaza+" "
+ " WHERE MFT.ID_SALVAGUARDA IS NOT NULL OR MFA.ID_SALVAGUARDA IS NOT NULL GROUP BY SAL.ID_SALVAGUARDA, SAL.DENOMINACION, SAL.DESCRIPCION, SAL.EFICACIA, MFT.ID_AMENAZA, MFA.ID_AMENAZA";
}else{
consulta = "SELECT COALESCE(MFT.ID_AMENAZA, MFA.ID_AMENAZA) as ID_AMENAZA, SAL.ID_SALVAGUARDA, SAL.DENOMINACION, SAL.DESCRIPCION, SAL.EFICACIA FROM AGR_SALVAGUARDAS SAL LEFT JOIN AGR_MIT_FREC_TIPO MFT "
+ " ON SAL.ID_SALVAGUARDA = MFT.ID_SALVAGUARDA AND MFT.ID_AMENAZA = "+idAmenaza+" "
+ " LEFT JOIN AGR_MIT_FREC_ACT MFA "
+ " ON SAL.ID_SALVAGUARDA = MFA.ID_SALVAGUARDA AND MFA.ID_AMENAZA = "+idAmenaza+" "
+ " WHERE MFT.ID_SALVAGUARDA IS NOT NULL OR MFA.ID_SALVAGUARDA IS NOT NULL GROUP BY SAL.ID_SALVAGUARDA, SAL.DENOMINACION, SAL.DESCRIPCION, SAL.EFICACIA, MFT.ID_AMENAZA, MFA.ID_AMENAZA";
}
Query q = dao.createNativeQuery(consulta);
List<AGRSalvaguardasInforme> resultado = q.getResultList();

return resultado;
}

为什么会出现这个错误以及如何正确管理?预先感谢您。

最佳答案

问题 1

命名困惑,请遵循java命名约定。

问题2

for (int i = 0; i < InformeAmenazasAGR.size()-1; i++) {

这样,List:InformeAmenazasAGR的最后一个元素永远不会被阅读。

问题3

 for (int i = 0; i < InformeAmenazasAGR.size()-1; i++) {
...
InformeSalvaguardasAGR.add(salvaguardaExtraida);

...
}

您正在 for 循环中将元素添加到列表中。将会导致难以预料的后果。如果您需要这样做,请使用 Iterator .

问题 4

如果你使用“NativeQuery”(我猜是jpa?).getResultList() ,你得到了 List<Object[]> ,您不能期望查询给您 List<YourClass> 。你必须深入研究结果,并自己完成工作。

关于java.lang.ClassCastException : java. util.Vector 无法转换为我的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26040597/

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