调用参数化方法

时间:2014-12-30 17:00:01

标签: java method-call

在学习Java Generics参数化时,我想到了这段代码:

public interface Comparable<T> {
    public int compareTo(T o);
}

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;
}

我想测试它,所以我写了这个:

Integer[] iArray = new Integer[10];
for (int i=0; i<10; i++){
    iArray[i] = new Integer(i);
}

int a = countGreaterThan(iArray, Integer.valueOf(5));

但是在调用方法countGreaterThan时,编译器在最后一行给出了错误消息:

The method countGreaterThan(T[], T) in the type Main is not applicable for the arguments (Integer[], Integer)

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:5)

java.lang.Integer没有实现您刚写的Comparable接口。

您应该删除该界面并使用它实现的内置界面。