为什么不加那句将数字转化为字符串的 就会报错500
来源:2-6 自由编程
张提
2019-05-16 13:45:57
2回答
芝芝兰兰
2019-05-16
同学你好。下面来一条条解答你的疑惑:
1、首先对于报错,我们首先要学会查看报错信息。以便进一步定位问题,寻找解决方案。
试着翻译一下,大体意思是,类型转换异常,java.lang.Integer类型不能被强制转换为java.lang.String 类型。发生错误的位置大致在DisplayServlet的第30行
2、如果不将计算出的int值sum转换为String的话,使用request.setAttribute(Object o)方法将sum放入,Java只会帮我们将int自动装箱为其包装类Integer,由于Integer已经是Object的子类,所以可以直接放入Attribute域中。
3、在DisplayServlet中,虽然getAttribute方法,声明返回值类型为Object,但实际取出的真正的对象却是Integer类型。所以(String)request.getAttribute("sum")就会出现将Integer强转为String类型的情况。但这种强转在java中是不允许的。
注:这也是形如(String)request.getAttribute,在getAttribute前使用强转会产生黄色警告的原因。
如果解答了同学的疑问,望采纳~
祝学习愉快~
weixin_慕虎5578550
2019-06-06
也可以不设置为String。
相似问题