接口延迟需要任何
此接口的实现 [to] 定义一个compareTo方法,该方法提供与其 getDelay 方法一致的排序。
但是我想知道,为什么 Java 8 中没有默认实现,因为compareTo
合同要求完全依赖getDelay
.
是否有特定原因将其留给实现类?还是在覆盖超级接口时无法创建默认方法?
编辑:为了让我的问题更容易理解,这里有一个例子:
interface Delayed extends Comparable<Delayed> {
long getDelay(TimeUnit unit);
@Override
default int compareTo(Delayed o) {
// might not be the perfect "compareTo" implementation, but you get the point
return o == this? 0:
Long.compare(this.getDelay(TimeUnit.NANOSECONDS), o.getDelay(TimeUnit.NANOSECONDS);
}
}