Java 如何调用这个泛型函数?

Java 如何调用这个泛型函数?,java,generics,bounded-wildcard,Java,Generics,Bounded Wildcard,我尝试了许多方法来调用countGreaterThan()函数(),但是我无法让它工作。我知道我需要使用Integer实例,而不是原语。这就是我尝试过的: MainClass.java public class MainClass { public static <T extends Comparable<T>> int countGreaterThan(T[] anArray, T elem) { int count = 0; for (T e : a

我尝试了许多方法来调用
countGreaterThan()
函数(),但是我无法让它工作。我知道我需要使用
Integer
实例,而不是原语。这就是我尝试过的:

MainClass.java

public class MainClass {

public static <T extends Comparable<T>> int countGreaterThan(T[] anArray, T elem) {
    int count = 0;
    for (T e : anArray)
        if (e.compareTo(elem) > 0)
            ++count;
    return count;
}

public static void main(String[] args){
    Integer[] myArray = {0,1,2,3,4};
    Integer myInt = new Integer(2);
    int result = countGreaterThan(myArray,myInt);
            System.out.println(result);
}
}
public类MainClass{
公共静态整数大于(T[]数组,T元素){
整数计数=0;
对于(T e:anArray)
如果(例如,与(元素)>0相比)
++计数;
返回计数;
}
公共静态void main(字符串[]args){
整数[]myArray={0,1,2,3,4};
整数myInt=新整数(2);
int result=countgreater大于(myArray,myInt);
系统输出打印项次(结果);
}
}
这是Comparable.java的接口

public interface Comparable<T> {
   public int compareTo(T o);
}
公共接口{
公共国际比较(TO);
}
这就是我得到的错误-

绑定不匹配:泛型方法countGreatherThan(T[],T)的类型 MainClass不适用于参数(整数[],整数)。这个 推断的整数类型不是有界类型的有效替代项 参数>


如果我理解您的问题,您似乎正在调用
countGreaterThan()
!您没有做的是打印结果或保存结果

countGreaterThan(myArray,myInt);
应该是

int result = countGreaterThan(myArray, myInt);
System.out.println(result);

我想知道您是否创建了自己的Comparable.java接口并正在使用它。如果是这样,您看到的是错误,因为Integer没有使用您的接口,而是使用核心Java的一部分。如果是这样的话,就去掉你的Comparable.java类,删除它,只使用核心java的一部分。无需导入,因为它是java.lang包的一部分,默认情况下,该包的类都自动导入。

什么不起作用?您应该明确地向我们显示countGreaterThan方法,或者至少它的签名,以便我们知道它返回的类型(如果有)以及它在其体内的作用。@HovercraftFullOfEels我实际上运行了代码。没关系。方法在原始帖子的链接中。真正的问题是它不能编译。是的,链接底部的那个可以。我试着用你的两行代码编译,但也没用。@user3745246:很抱歉为了改进你的问题而打扰了你,但是请注意,我们只有在你改进之后才能解决这个问题。谢谢你的改进,欢迎你给出答案。