HandlerMapping实现代码感觉有点问题
2016-11-20 19:55
337 查看
在看HandlerMapping内部怎么跟Handler关联起来的代码中,好想发现一个代码问题:
其中这个Match对象,这个作为类AbstractHandlerMethodMapping的内部属性,其中进行比较的时候,我们可以看到用的肯定是toString的输出的值嘛,然后我们看它用到的地方
其中comparator是内部自定义的一个比较器的封装,我们看下
其中这个比较器的封装,但是真正的比较的比较器是this.getMappingComparator这个获取的系统的比较器
我们看下这个外部比较器getMappingComparator的实现,发现他是一个抽象函数
它唯一的实现函数是
其中我们看到,他的两个参数是RequestMappingInfo类型啊,我们的比较的是match.mapping的类型
而且其中初始化的时候,用到的是HandlerMethod类型的对象直接赋值给mapping,那么mapping在内存中的存储应该是HandlerMethod的存储类型,那么比较器进行用的时候,怎么可以用RequestMappingInfo对象,而且如果说是强转,那么两者之间又不是父子关系啊。所以,这里感觉代码是有问题的。只是目前还没有验证。
其中这个Match对象,这个作为类AbstractHandlerMethodMapping的内部属性,其中进行比较的时候,我们可以看到用的肯定是toString的输出的值嘛,然后我们看它用到的地方
其中comparator是内部自定义的一个比较器的封装,我们看下
其中这个比较器的封装,但是真正的比较的比较器是this.getMappingComparator这个获取的系统的比较器
我们看下这个外部比较器getMappingComparator的实现,发现他是一个抽象函数
它唯一的实现函数是
其中我们看到,他的两个参数是RequestMappingInfo类型啊,我们的比较的是match.mapping的类型
而且其中初始化的时候,用到的是HandlerMethod类型的对象直接赋值给mapping,那么mapping在内存中的存储应该是HandlerMethod的存储类型,那么比较器进行用的时候,怎么可以用RequestMappingInfo对象,而且如果说是强转,那么两者之间又不是父子关系啊。所以,这里感觉代码是有问题的。只是目前还没有验证。
相关文章推荐
- java代码中实现字符编码转换(解决中文乱码问题)
- 发现BCB6的TComInterface实现有点问题
- “约瑟夫问题”实现代码
- 折半查找实现算法二(递归办法)PS:编译后有一个warning,但不影响结果,代码设计上应该还有些问题
- .net从DataGridView复制到Excel.代码实现。解决乱码问题
- 微软的设计思想:总感觉有点返祖现象,以前VB中很方便的功能,在C#中却要很复杂才能实现 treeview
- js跨域问题之跨域iframe自适应大小实现代码
- 按"利用C++语言设计可扩展线程池"文章实现代码,但是有问题,希望大家来讨论,指出问题,谢谢
- 用多线程实现“生产者-消费者问题”(代码+实验报告)
- 人狼羊菜过河问题 (Java代码实现)
- 同样一个问题的两种 java 实现代码 的比较
- 使用了继承、多态还有工厂模式和反射,但是还是没有OO的感觉。[已经增加了实现的代码]
- 今天碰到个怪异的问题..js代码和c#得出的结果大多一样,个别有点区别
- “约瑟夫问题”实现代码
- 分割字符串问题,有点乱,在开发中碰到的小问题,虽然搞好了,可感觉 不是很熟,不快,方便以后回来看
- 一段蓝牙通讯代码(似乎有点问题)
- 在做项目时偶尔会遇到这样的问题,有点感觉莫名其妙,也不是什么具体程序的错误,那倒时好发现。感觉无从下手,所以就从CSDN上狠搜了一下,有了感觉了之从记载下来以免看好!
- 关于CLR中堆排序若干问题的代码实现
- 数独问题的一种简单算法代码实现
- Trie树的应用,一道算法问题求解 代码实现