java - Java 中的泛型 : How do I make this example work?

标签 java generics

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 extends Comparable<T>> 中实例化 T ,但是如何呢?

最佳答案

只需更改 intInteger并删除那个丑陋的<Integer>在你的打印语句中。

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

关于java - Java 中的泛型 : How do I make this example work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883137/

相关文章:

c# - C# : what will happen in this edge case? 中的通用扩展方法

java - 如何使用比较器根据两个不同人的年龄和姓名进行排序?

java - 在字符串数组中加载 .text 文件

java - 根据Java中对象属性的最常见值过滤对象的Arraylist

swift - Swift 函数中可选泛型参数的默认值

java - Java泛型中<>的使用

java - Android SharedPreferences 最佳实践

java - 将元素添加到 vector 的 vector 时出现 ArrayIndexOutofBounds 异常

java - 作为泛型类型绑定(bind)的静态嵌套类不起作用

java - 泛型是否在编译时被编译器移除