以下代码能否编译通过,假如能编译通过,运行时得到什么输出结果()?
<% request.setAttribute("count",new Integer(0));
Integer count = request.getAttribute("count")
%>
<%=count %>
a) 编译不通过
b) 可以编译运行,输出0
c) 编译通过,但运行时抛出ClassCastException
d) 可以编译通过,但运行无输出
求解释????????
request.getAttribute("count")返回的类型默认是Object :
Object javax.servlet.ServletRequest.getAttribute(String name)必须强制转换成Integer类型。不转化的话:会报:
org.apache.jasper.JasperException: Unable to compile class for JSP:转换过后:输出为0
请问,把new Integer(0)放入request中,变成啥类型的,为什么需要强转?
追答把new Integer(0)放入request中会变成Object 类型 所以取出来也得强转一下
追问那所有类型的对象放入request中都会变为Object 类型的吗?
追答对,因为那个方法就是这样定义的 void javax.servlet.ServletRequest.setAttribute(String name,Object o)
本回答被提问者和网友采纳