1.我认为Java中的Interfaces没有实现,那么如何在这里使用compareTo()?
2.据我所知, extends 关键字可以为接口添加新方法,以便稍后实现。 所以我不明白我在这里完全延伸到底是什么?
由于
public class Compare {
// simple comparison operator < > ... works only on primitives
// that's why we need the Comparable
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;
}
}
答案 0 :(得分:1)
Java中的接口没有实现,但是不能创建接口的实例。 (尝试一下 - 当您在代码中包含new List()
时会发生什么?)您可以仅创建实现该接口的类的实例,并且该类需要实现接口的方法。
在这种情况下,您根本不会扩展任何内容。您只需指出'此方法只能用于扩展/实现T
接口'的类Comparable<T>
。
答案 1 :(得分:0)
实际上,从Java 8开始,接口可以具有(默认的,部分的)实现,但这是暂时的。令人困惑的是,关键字extends
有两个用法:
List<T extends Comparable>
。使用相同的关键词是他们在介绍时所做出的决定,大概是为了强调适用于此Generic T
的类本身如何扩展 Comparable
(例如)。由于Java中的类和接口共享相同的层次结构,因此您在此处使用它并不重要(尽管接口是可取的)。