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 Documentationにあります。extends Comparable を書くとき、コンパイラに型を伝えるにはどうすればよいですか? T in をインスタンス化する必要があると思います<T extends Comparable<T>>が、どうすればよいですか?

4

4 に答える 4

7

inttoを変更して、printステートメント内のInteger醜いものを削除するだけです。<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 に答える