为什么不加那句将数字转化为字符串的 就会报错500

来源:2-6 自由编程

张提

2019-05-16 13:45:57

http://img.mukewang.com/climg/5cdcf89c0001577806420188.jpghttp://img.mukewang.com/climg/5cdcf8b60001f6ba06280166.jpghttp://img.mukewang.com/climg/5cdcf8dd00015b4808150313.jpg

写回答

2回答

芝芝兰兰

2019-05-16

同学你好。下面来一条条解答你的疑惑:

1、首先对于报错,我们首先要学会查看报错信息。以便进一步定位问题,寻找解决方案。

http://img.mukewang.com/climg/5cdd03d80001be5209890375.jpg

试着翻译一下,大体意思是,类型转换异常,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前使用强转会产生黄色警告的原因。

如果解答了同学的疑问,望采纳~

祝学习愉快~


1

weixin_慕虎5578550

2019-06-06

也可以不设置为String。

http://img.mukewang.com/climg/5cf8e32800016ad808680061.jpg

0

0 学习 · 9666 问题

查看课程