java - 我可以在模板排序中使用简单类型吗

标签 java sorting types

我现在正在学习排序,但不明白一些东西。
我的排序适用于 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
  • 无法创建参数化类型的数组
  • 无法创建、捕获或抛出参数化类型的对象
  • 无法重载每个重载的形式参数类型都删除为相同原始类型的方法

引用:see example in Java tutorials

关于java - 我可以在模板排序中使用简单类型吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26944981/

相关文章:

java - 如何将 À, Á, Â, Ã, Ä, Å 映射到 A 以实现更高效的搜索?

java在unix下写入bmp图像失败

c++ - 试图在 C++ 中反转字符串但返回相同的字符串

带有数组 reduce 的 TypeScript 交集类型

Haskell:获取表达式的静态类型

arrays - 在 Excel 中将类型字符串数组复制到范围 - 限定符无效

java.sql.SQLException : - ORA-01000: maximum open cursors exceeded

java - Calendar to Date 问题,期间有 1 年错误

python - 如何订购字典python(排序)

python - 以相反顺序对 4D 数组的每一列进行排序