【发布时间】:2018-02-11 17:49:40
【问题描述】:
我正在用 Java 编写一个类,我想实现 Comparable 接口。这是课程:
public class Flight implements Comparable {
private int flightTime;
public int compareTo(Object o) {
Flight f = (Flight) o;
return this.flightTime - f.flightTime;
}
}
现在我了解到我们还可以向界面添加类型,如下所示:
public class Flight implements Comparable<Flight> {
private int flightTime;
public int compareTo(Flight f) {
return this.flightTime - f.flightTime;
}
}
第二种实现的优势是什么(请不要将问题简化为泛型的优势)?
我对 Java 还很陌生,我怀疑添加类型一定有一些好处,因为从表面上看,实现实现了相同的目标。而且看起来compareTo(Object o) 的实现可能会为我们提供更多信息,因为我们可能正在测试instanceof 并可能处理错误。
【问题讨论】:
-
oracle.com/technetwork/articles/java/… 列出了某些使用泛型的好处,其中大多数情况可以应用于上述方法中的不同用例。
-
另外,您不认为讨论使用一种方法优于另一种方法的好处过于宽泛吗?
-
@nullpointer 正如我所提到的,我对 Java 还很陌生,所以我不知道什么是太宽泛,什么不是
-
“我们也可以添加”您应该始终添加。见What is a raw type and why shouldn't we use it?。
标签: java generics types interface