黑马程序员技术交流社区

标题: 使用泛型来写二分法查找时候的疑问。。求高手解答 [打印本页]

作者: 陈潼    时间: 2012-8-16 20:31
标题: 使用泛型来写二分法查找时候的疑问。。求高手解答
本帖最后由 陈潼 于 2012-8-16 20:33 编辑
  1.         //public static <T> int binarySearch(List<? extends Comparable< ? super T>> list,T target)//怎么回事?:??正常
  2.         //public static <T> int binarySearch(List<T  extends Comparable< ? super T>> list,T target)//怎么回事?:??错误
  3.         //public static <T extends Comparable< ? super T>> int binarySearch(List<T> list,T target)//怎么回事?:??正常
  4.         {
  5.                 int max,min,mid ;
  6.                 max = list.size()-1;
  7.                 min = 0 ;
  8.                 while(min <= max)
  9.                 {
  10.                         mid = (max+min)>>1                        
  11.                         int num = list.get(mid).compareTo(target);
  12.                         if(num > 0)
  13.                         {
  14.                                 max = mid -1 ;
  15.                         }
  16.                         else if (num < 0)
  17.                         {
  18.                                 min = mid + 1 ;
  19.                         }
  20.                         else
  21.                         {
  22.                                 return num ;
  23.                         }               
  24.                 }
  25.                 return -min-1;
  26.         }
  27. }
复制代码
如题,将方法头的注释取消后可见各个方法头,正确的可以理解,但是没想明白为什么第二个是错的。请高手解答
作者: pphdsny3    时间: 2012-8-16 20:41
应该是泛型的书写规范的问题吧:
? extends T
? super T
他们两个的书写规范就是这样子,你写的是T extends T肯定是会报错的
作者: 陈潼    时间: 2012-8-16 20:47
黑马王鹏 发表于 2012-8-16 20:41
应该是泛型的书写规范的问题吧:
? extends T
? super T

我写的T extends T????请指明




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2