为什么不能用泛型?有人能解释一下吗?

img

为什么参数不能用泛型,改成指定类型后就可以了,这是什么问题吗?那怎么改才能让这个方法变成顺序表通用的,不只用于Integer 类型

img

第一处,泛型直接不能直接用大小于号比较,可以用compareTo去比较大小
第二处,泛型和整形x,y比较大小肯定是不行的,同样的,把入参x和y改为泛型T,然后用compareTo方法 去比较大小

因为泛型并不是一个具体的数据类型,所以无法直接用于比较,像你那么写肯定会报错
如果你想实现一个泛型数组的排序,通常的做法是:

  1. 方法内部实现将泛型数组转为 Object[] 数组
  2. 再调用 compartTo() 方法对其元素进行逐个比较

你用泛型,就意味着类型不确定,Integer确实可以用<比较,数字类型都可以,但是编译器不知道你从list里get出来的具体是什么类型,不知道具体类型也就无法使用比较运算符。