在Filter中为什么要将request转化成HttpServletRequest?

 我来答
宦海小迷童
推荐于2019-09-18 · 知道合伙人教育行家
宦海小迷童
知道合伙人教育行家
采纳数:34848 获赞数:255112
公考,一次成功,一直工作到现在

向TA提问 私信TA
展开全部

为啥要强制转换呢,经过测试知道了,if(request instanceOf  HttpServletRequest) System.out.println("true");输出true。

ServletRequest是HttpServletRequest的父接口,可见request是HttpServletRequest的实现类的对象,上面就会用到多态的知识,

ServletRequest request;这个是将子类对象赋给父类引用,他运行时的类型是子类,编译时的类型是父类,但是在运行时,父类类型对象调用的方法如果子类里头有,那就执行子类里头的方法。

如果编译时的类型也就是父类没有调用的那个方法,则报错。所以在那里要做一个强制类型转换,否则就会报错。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式