java.util.Vector无法强制转换为java.util.ArrayList

 依然2502927101 发布于 2023-01-15 17:07

我试图从一个servlet返回数据库搜索结果的ArrayList,以显示在jsp页面上.

将arraylist设置为servlet中的请求的地址,并将请求转发到jsp页面.当我尝试在jsp页面上检索它时,它会给出以下错误:

"java.util.Vector无法强制转换为java.util.ArrayList"

servlet代码:

List ResultList=SearchPartsDAO.displaySearchResults(car);
        if(ResultList.size()>=1){
            request.setAttribute("ResultList", ResultList);
            request.getRequestDispatcher("SearchResults.jsp").forward(request, response);
        }else
            response.sendRedirect("NotFound.jsp");

JSP:


<% 
ArrayList resultList = new ArrayList();
resultList=(ArrayList)request.getAttribute("ResultList");
%>
<%System.out.println(resultList.get(0).getCarMake());%>

Jon Skeet.. 6

你没有展示你的displaySearchResults方法,但听起来像是返回一个Vector而不是一个ArrayList.但从根本上说,你不应该关心它返回的实现 - 如果你只是强制转换List,你应该没问题:


<% 
List resultList = (List) request.getAttribute("ResultList");
%>
<%System.out.println(resultList.get(0).getCarMake());%>

请注意我是如何删除空的初始赋值ArrayList- 如果你立即为变量分配一个新值,这是毫无意义的.

在集合界面方面工作比具体类更清晰 - 而且你已经在第一段代码中做到了这一点.仅要求返回值的工具List,所以你应该只具有相同的要求时,你处理相同的值更高版本.

同样值得理解的是,你的演员List阵容有些不安全,因为它只是真正的演员List,因为缺乏具体的仿制品.ClassCastException当您访问各个元素时,如果它们变成某些非Car引用,您仍然可以获得更晚的元素.不幸的是,你不能做很多事情.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有