java 8 Продолжительность "ofSeconds" против "withSeconds" - PullRequest
0 голосов
/ 13 ноября 2018

С помощью Duration.ofSeconds(2) мы получим объект Duration, представляющий 2 секунды.

Теперь, если у меня есть экземпляр Duration и вызов метода ofSeconds, он вернет новый Duration экземпляр с уничтоженным значением, отличным от нано секунд, и значение, которое я представил как параметр метода, будет установлено на нем.

Duration.ofHours(2).withSeconds(2) приведет к тому, что Duration объект будет представлять 2 секунды.

Поскольку класс Duration является неизменным, какой смысл иметь метод withSeconds, когда я могу просто использовать статический ofSeconds?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

withSeconds возвращает новый неизменный объект с переопределенными секундами.Все остальное сохраняется.

ofSeconds создает новый неизменяемый объект на основе количества секунд.

Используйте первый только тогда, когда вы хотите изменить секунд без учета более высокой точности.

0 голосов
/ 13 ноября 2018

См. Документацию :

Возвращает длительность с указанными секундами, сохраняя нано-секундную часть этой продолжительности .

...