java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

本文详细解析了在Java中遇到的一个常见异常:ClassCastException。通过一个具体的案例,解释了Integer类型无法转换为String的原因,并提供了正确的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在调试的过程中,发现了一个bug:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
	org.apache.jsp.complaintSearchList_jsp._jspService(complaintSearchList_jsp.java:93)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	com.tgx.servlet.ComplaintServlet.doGet(ComplaintServlet.java:120)
	com.tgx.servlet.ComplaintServlet.doPost(ComplaintServlet.java:142)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

英语不好就是硬伤啊,开始的时候没有读懂,以为是String不能转换成Integer。就在那里纳闷,因为以前写过好多遍都没有问题的。

之后查了一下度娘,明白了。那个Exception的意思应该是,Integer类型不能将其转换为String。因为以前是这样的。request.setParameter("sdf"); 读取的时候 String dfd = request.getParameter("sdf"); 这样是合法的。因为里面本来就是存储的是String类型数据。

而我这次是request.setAttribute("pageNow", pageNow); 读取的时候,String s_pageNow = (String)request.getAttribute("pageNow");这样就不行了。因为setAttribute那个数据什么object类型,读取的时候就应该用对应的数据类型读取出来。但是这里不能用int 读取,应为它不是一个object类型。应该用Integer,然后再转化为int数据类型。

解决完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值