私は Duration Java 8のクラス)を見ていましたが、次のものがないことに気付きました:
_long toSeconds();
_
ただし、日、時間、分、ミリ、ナノを取得するためのその他すべてのtoXXXXX()
があります。このdurationオブジェクト内の秒数を返すgetSeconds()
メソッドがあります。要求された時間単位として期間を取得するget(TemporalUnit unit)
メソッドもあります。しかし、一貫性のためにtoSeconds()
メソッドを保持しないのはなぜですか?
docs の発言を見てみましょう:
このクラスは、秒またはナノ秒の観点から量または時間をモデル化します。
これは基本的に、表示される時間の量を格納するために使用される単位がsecondsであることを意味します。たとえば、5分10ナノ秒の期間を保存するには、300(秒)と10(ナノ秒)が保存されます。このため、から秒に変換する必要はありません。 getSeconds()
を使用して秒を取得するget。
ここで私が何を意味するか見てください?他のすべてのメソッドは、対応する単位を日数、分数、時間数に変換する...だから、to
、つまりconvertedTo
で始まる。秒単位の期間を取得するために変換を行う必要がないため、秒単位の期間を返すメソッドはget
で始まります。
これは、Java 9: https://bugs.openjdk.Java.net/browse/JDK-8142936 に修正が予定されている既知の問題です。
Java 9、toSeconds
。に新しいメソッドが追加されました。 ソースコード を参照してください。
/**
* Gets the number of seconds in this duration.
* <p>
* This returns the total number of whole seconds in the duration.
* <p>
* This instance is immutable and unaffected by this method call.
*
* @return the whole seconds part of the length of the duration, positive or negative
*/
public long toSeconds() {
return seconds;
}
http://tutorials.jenkov.com/Java-date-time/duration.html からの引用:
「toSeconds()メソッドがないかどうかを自問するかもしれません。それはDurationの秒部分と同じだからではありません。説明のようにgetSeconds()メソッドを使用してDurationの秒部分を取得できます。ついさっき。"