Java中的泛型:如何使此示例工作


class main{
 public static void main(String[] args){
  int[] array = new int[3];
  array[0]=3;
  array[1]=2;
  array[2]=1;
  System.out.println(<Integer>countGreaterThan(array,1));
 }
 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;
 }
}

我在 Java 文档中得到了这个考试。当我编写扩展可比时,我如何告诉编译器什么是类型?我想我应该在<T extends Comparable<T>>中实例化 T ,但是如何呢?

只需将int更改为Integer,并删除打印语句中丑陋的<Integer>即可。

Integer[] array = new Integer[3];
array[0] = 3;
array[1] = 2;
array[2] = 1;
System.out.println(countGreaterThan(array, 1));

我会安排这个,以便您可以使用varargs

static <T extends Comparable<T>> int countGreaterThan(T elem, T... anArray) {
    int count = 0;
    for (T e : anArray)
        if (e.compareTo(elem) > 0)
            ++count;
    return count;
    }
}
System.out.println(countGreaterThan(1, 3,2,1));
class main {
    public static void main(String[] args){
  Integer[] array = new Integer[3];
  array[0]=3;
  array[1]=2;
  array[2]=1;
  System.out.println(countGreaterThan(array,1));
 }
    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[] array = new Integer[3];   
    array[0]=3;   
    array[1]=2;   
    array[2]=1;   
    System.out.println(countGreaterThan(array,1));  

这是你要找的吗?

相关内容

最新更新