Java 找出输入接口的实现类型

Java 找出输入接口的实现类型,java,interface,temporary,implements,Java,Interface,Temporary,Implements,我有一个函数,它将接口compariable作为输入参数 int sort(Comparable A[]){...} 现在我想创建一个运行时a的临时变量(可能是Integer或Float,但我不知道),以便对排序算法进行比较。 怎么做的?我是Java的大一新生。首先,请不要使用。第二,我认为您不能,但您可以创建一个临时变量compariable。大概 static <T> void sort(Comparable<T> A[]){ if (A == null |

我有一个函数,它将接口
compariable
作为输入参数

int sort(Comparable A[]){...}
现在我想创建一个运行时
a
的临时变量(可能是
Integer
Float
,但我不知道),以便对排序算法进行比较。
怎么做的?我是Java的大一新生。

首先,请不要使用。第二,我认为您不能,但您可以创建一个临时变量
compariable
。大概

static <T> void sort(Comparable<T> A[]){
    if (A == null || A.length == 0) {
        return;
    }
    Comparable<T> temp = A[0];
    // ...
}
静态无效排序(可比A[]{
如果(A==null | | A.length==0){
返回;
}
可比温度=A[0];
// ...
}

请不要使用原始类型。如果你不知道他们是什么,那就用谷歌搜索他们。你为什么要这么做?只需将其再次存储在一个可比较的
中即可。谢谢。我遇到一个问题:执行此操作时,我无法通过
a[j-1]访问变量
a
。比较到(a[j])
。它给出了编译器错误
实际参数compariable无法通过方法调用转换转换为T#1得到它。使用
A[j-1]将其强制转换为
T
。在方法上方比较((T)A[j])
和“@SuppressWarnings(“unchecked”)`这是因为您的方法声明都是错误的,它应该是
静态无效排序(T[]A)