Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ClassCastException:java.util.Vector不能强制转换到我的类_Java_Class_For Loop_Foreach - Fatal编程技术网

java.lang.ClassCastException:java.util.Vector不能强制转换到我的类

java.lang.ClassCastException:java.util.Vector不能强制转换到我的类,java,class,for-loop,foreach,Java,Class,For Loop,Foreach,我使用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

我使用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
):

为什么会出现此错误以及我如何正确管理?。 提前谢谢你。

对我来说

     Query q = dao.createNativeQuery(consulta);
     List<AGRSalvaguardasInforme> resultado = q.getResultList();
只是一个代码糖:

for (Iterator it : resultadoQuery.iterator(); it.hasNext();) {
   AGRSalvaguardasInforme  salvaguardaExtraida = (AGRSalvaguardasInforme) it.next();
   InformeSalvaguardasAGR.add(salvaguardaExtraida);
}
因此,cast隐式地在那里(由于我上面提到的原因,该cast是在运行时抛出ClassCastException的一个)

在我看来

     Query q = dao.createNativeQuery(consulta);
     List<AGRSalvaguardasInforme> resultado = q.getResultList();
只是一个代码糖:

for (Iterator it : resultadoQuery.iterator(); it.hasNext();) {
   AGRSalvaguardasInforme  salvaguardaExtraida = (AGRSalvaguardasInforme) it.next();
   InformeSalvaguardasAGR.add(salvaguardaExtraida);
}
因此,cast隐式地在那里(由于我上面提到的原因,该cast是在运行时抛出ClassCastException的一个)

问题1 命名混乱,请遵循java命名约定

问题2 您正在将元素添加到for循环中的列表中。这将导致不可预测的后果。如果需要,请使用迭代器

问题4 如果使用“NativeQuery”(我想是jpa?
.getResultList()
),您会得到一个
列表
,您不能指望查询会给您一个
列表
。你必须了解结果,自己做这项工作。

问题1 命名混乱,请遵循java命名约定

问题2 您正在将元素添加到for循环中的列表中。这将导致不可预测的后果。如果需要,请使用迭代器

问题4
如果使用“NativeQuery”(我想是jpa?
.getResultList()
),您会得到一个
列表
,您不能指望查询会给您一个
列表
。您必须进入结果,自己完成工作。

当您发布代码时,请用注释指出错误所在的准确行(在本例中是AGRInformes的1130行)。错误在哪一行?啊,感谢上帝,我知道哪一行引发了异常…抱歉,我忘了。这行用$symbol标记。我再也看不到它了。。。如果您编写这样的代码会简单得多:嘿,伙计们,异常抛出在这一行
中,这是代码的一部分发布代码时,请用注释指出错误所在的确切行(在本例中为AGRInformes的1130行)。错误在哪一行?啊,感谢上帝,我知道哪一行引发了该异常…抱歉,我忘了。这行用$symbol标记。我再也看不到它了。。。如果您编写这样的代码会简单得多:嘿,伙计们,异常抛出在这一行
中,这是代码的一部分确切地说,在调试器中,我看到resultadoQuery是向量的返回。如何从ResultaToQuery中提取行?谢谢。嗯,但是第
List resultado=q.getResultList()行不应该有编译器错误吗由于没有显式强制转换结果?它取决于
q.getResultList()
的类型签名。如果它只返回原始
列表
,您将得到一个警告;如果它返回
列表
,则类型推断将假定T是您在赋值的左侧所说的,并且没有类型错误。确切地说,在调试器中,我看到resultadoQuery是向量的返回。如何从ResultaToQuery中提取行?谢谢。嗯,但是第
List resultado=q.getResultList()行不应该有编译器错误吗由于没有显式强制转换结果?它取决于
q.getResultList()
的类型签名。如果它只返回原始
列表
,您将得到一个警告;如果它返回
列表
,则类型推断将假定T是您在赋值左侧所说的,并且没有类型错误。
for (Iterator it : resultadoQuery.iterator(); it.hasNext();) {
   AGRSalvaguardasInforme  salvaguardaExtraida = (AGRSalvaguardasInforme) it.next();
   InformeSalvaguardasAGR.add(salvaguardaExtraida);
}
for (int i = 0; i < InformeAmenazasAGR.size()-1; i++) {
 for (int i = 0; i < InformeAmenazasAGR.size()-1; i++) {
              ...
                        InformeSalvaguardasAGR.add(salvaguardaExtraida);
                 
                ...                           
            }