在Filter中为什么要将request转化成HttpServletRequest?
1个回答
展开全部
为啥要强制转换呢,经过测试知道了,if(request instanceOf HttpServletRequest) System.out.println("true");输出true。
ServletRequest是HttpServletRequest的父接口,可见request是HttpServletRequest的实现类的对象,上面就会用到多态的知识,
ServletRequest request;这个是将子类对象赋给父类引用,他运行时的类型是子类,编译时的类型是父类,但是在运行时,父类类型对象调用的方法如果子类里头有,那就执行子类里头的方法。
如果编译时的类型也就是父类没有调用的那个方法,则报错。所以在那里要做一个强制类型转换,否则就会报错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询