2
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 文档中得到了这个例子。当我编写扩展 Comparable 时,我如何告诉编译器什么是类型?我想我应该实例化 T in <T extends Comparable<T>>,但是如何?

4

4 回答 4

7

只需更改inttoInteger并删除<Integer>打印语句中的丑陋。

Integer[] array = new Integer[3];
array[0] = 3;
array[1] = 2;
array[2] = 1;
System.out.println(countGreaterThan(array, 1));
于 2012-08-09T12:13:20.287 回答
2

我会安排这个,所以你可以使用可变参数

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));
于 2012-08-09T12:18:47.780 回答
0
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;
    }
}
于 2012-08-09T12:14:03.360 回答
0
Integer[] array = new Integer[3];   
    array[0]=3;   
    array[1]=2;   
    array[2]=1;   
    System.out.println(countGreaterThan(array,1));  

这是你想要的?

于 2012-08-09T12:14:26.120 回答