Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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 泛型-迭代ArrayList时的ClassCastException_Java_Generics_For Loop - Fatal编程技术网

Java 泛型-迭代ArrayList时的ClassCastException

Java 泛型-迭代ArrayList时的ClassCastException,java,generics,for-loop,Java,Generics,For Loop,下面是我的代码。我正在查询user_group表并在列表中获得结果。我想重复这个列表。但得到的例外如下 List<Group> list= empDAO.getStudentList(); for(Group o :list){ System.out.println("NAME :"+ o.getFirstName()); } 我得到以下异常 Aug 3, 2012 9:22:47 PM org.apache.catalina.core.St

下面是我的代码。我正在查询user_group表并在列表中获得结果。我想重复这个列表。但得到的例外如下

    List<Group> list= empDAO.getStudentList();
    for(Group o :list){
        System.out.println("NAME :"+ o.getFirstName());
    }
我得到以下异常

Aug 3, 2012 9:22:47 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet mvc-dispatcher threw exception
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.common.form.Group
        at com.common.controller.HelloWorldController.helloWorld(HelloWorldController.java:28)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:421)
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:136)
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:326)
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:313)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)

有人能告诉我如何修复这个错误吗?

jdbcTemplate.queryForList(“从用户组中选择*)
返回的是HashMap列表,而不是组项列表(您的IDE可能会在该行显示警告)

您可能需要阅读关于jdbcTemplate的Spring文档,并且可能需要使用将每一行转换为组对象


我还认为您希望使用方法
jdbcTemplate.query(stringsql,rowmapperrm)
对于您的用例,请检查
jdbcTemplate.queryForList行(“select*fromuser\u group”)
返回的是HashMap列表,而不是组项列表(您的IDE可能会在该行显示警告)

您可能需要阅读关于jdbcTemplate的Spring文档,并且可能需要使用将每一行转换为组对象


我还认为您希望使用方法
jdbcTemplate.query(stringsql,rowmapperrm)
对于您的用例,请检查。

jdbcTemplate.queryForList
不返回
列表,它不知道
组是什么。它返回一个
列表
,一个行列表,每行都是从列名到其值的映射

这样做:

for (Map<String,Object> m : jdbcTemplate.queryForList("select * from user_group")) {
    for (Map.Entry<String,Object> e : m.entrySet()) {
        String columnName = e.key;
        Object columnValue = e.value;
        ...build a Group somehow?...
    }
}
for(映射m:jdbcTemplate.queryForList(“从用户组中选择*)){
对于(Map.Entry e:m.entrySet()){
字符串columnName=e.key;
对象列值=e.value;
…以某种方式建立一个团队?。。。
}
}

jdbcTemplate.queryForList
不返回
列表
,它不知道
组是什么。它返回一个
列表
,一个行列表,每行都是从列名到其值的映射

这样做:

for (Map<String,Object> m : jdbcTemplate.queryForList("select * from user_group")) {
    for (Map.Entry<String,Object> e : m.entrySet()) {
        String columnName = e.key;
        Object columnValue = e.value;
        ...build a Group somehow?...
    }
}
for(映射m:jdbcTemplate.queryForList(“从用户组中选择*)){
对于(Map.Entry e:m.entrySet()){
字符串columnName=e.key;
对象列值=e.value;
…以某种方式建立一个团队?。。。
}
}

我应该使用这里给出的代码吗?我应该使用这里给出的代码吗?我通过以下url中的步骤修复了错误:)我通过以下url中的步骤修复了错误:)
for (Map<String,Object> m : jdbcTemplate.queryForList("select * from user_group")) {
    for (Map.Entry<String,Object> e : m.entrySet()) {
        String columnName = e.key;
        Object columnValue = e.value;
        ...build a Group somehow?...
    }
}