我现在正在学习排序,但不明白一些东西。
我的排序适用于 Integer、Double... 等类,但不适用于 int、short、long、double 等类型。
我用过public static <T extends Comparable<? super T>> void sexySort(T[] a)
和public static <T extends Number> void sexySort(T[] a)
.
附注我尝试过反射,但仍然不起作用
public static <T> int checkClass(T t){
String type = t.getClass().getCanonicalName();
if(type.equals("java.lang.Integer")){
return 0;
}
else if(type.equals("java.lang.Double")){
return 1;
}
return -1;
//etc.
}
最佳答案
要有效地使用 Java 泛型,您必须考虑以下限制:
- 无法使用基元类型实例化泛型类型
- 无法创建类型参数的实例
- 无法声明类型为类型参数的静态字段
- 不能对参数化类型使用强制转换或 instanceof
- 无法创建参数化类型的数组
- 无法创建、捕获或抛出参数化类型的对象
- 无法重载每个重载的形式参数类型都删除为相同原始类型的方法
关于java - 我可以在模板排序中使用简单类型吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26944981/