您的位置:首页 > 移动开发

HandlerMapping实现代码感觉有点问题

2016-11-20 19:55 288 查看
在看HandlerMapping内部怎么跟Handler关联起来的代码中,好想发现一个代码问题:



其中这个Match对象,这个作为类AbstractHandlerMethodMapping的内部属性,其中进行比较的时候,我们可以看到用的肯定是toString的输出的值嘛,然后我们看它用到的地方



其中comparator是内部自定义的一个比较器的封装,我们看下



其中这个比较器的封装,但是真正的比较的比较器是this.getMappingComparator这个获取的系统的比较器

我们看下这个外部比较器getMappingComparator的实现,发现他是一个抽象函数



它唯一的实现函数是



其中我们看到,他的两个参数是RequestMappingInfo类型啊,我们的比较的是match.mapping的类型



而且其中初始化的时候,用到的是HandlerMethod类型的对象直接赋值给mapping,那么mapping在内存中的存储应该是HandlerMethod的存储类型,那么比较器进行用的时候,怎么可以用RequestMappingInfo对象,而且如果说是强转,那么两者之间又不是父子关系啊。所以,这里感觉代码是有问题的。只是目前还没有验证。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class spingmvc 源码 问题
相关文章推荐