通用方法和有界类型参数

时间:2018-04-03 20:21:52

标签: java generics

https://docs.oracle.com/javase/tutorial/java/generics/boundedTypeParams.html

如何调用此方法:

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

我尝试了各种方法但失败了。对不起,我不能用手机打字。 PC被封锁在中国。

2 个答案:

答案 0 :(得分:1)

示例:

Integer arr[] = {1, 2, 3};
Integer n = 2;
int result = countGreaterThan(arr, n);
System.out.println(result);

答案 1 :(得分:0)

这只是一个例子:

public class Test {

    public static void main(String[] args) throws Exception {
        Test.countGreaterThan(new String[]{"a", "b"}, "a");
    }

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

您可以传递任何实现Comparable接口的内容。

e.g。开箱即用的类型有:IntegerLongString等。

您可以创建自己的类型来实现Comparable,并且该方法也可以。