インターフェイスDelayedには、
このインターフェイスの実装は、その getDelay メソッドと一致する順序を提供するcompareToメソッドを定義します。
しかし、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);
}
}