Класс scala.concurrent.duration.Duration
Компаньон объект Duration
sealed abstract класс Duration extends Serializable with Ordered[Duration]
Абстрактные члены значения
abstract def *(factor: Double): Duration
Возвращает это длительность, умноженную на скалярный коэффициент. При работе с бесконечными коэффициентами семантика соответствует Double.
- Исключения
IllegalArgumentExceptionв случае конечного переполнения: диапазон конечной длительности+-(2^63-1)ns, and no conversion to infinite durations takes place.
abstract def +(other: Duration): Duration
Возвращает сумму этой длительности и переданной. При работе с бесконечными слагаемыми семантика соответствует Double.
- Исключения
IllegalArgumentExceptionв случае конечного переполнения: диапазон конечной длительности+-(2^63-1)ns, and no conversion to infinite durations takes place.
abstract def -(other: Duration): Duration
Возвращает разность этой длительности и переданной. При работе с бесконечными слагаемыми семантика соответствует Double.
- Исключения
IllegalArgumentExceptionв случае конечного переполнения: диапазон конечной длительности+-(2^63-1)ns, and no conversion to infinite durations takes place.
abstract def /(divisor: Duration): Double
Возвращает частное этой и переданной длительности как число с плавающей точкой. Семантика определяется Double, как если бы вычислялось частное длительностей в наносекундах обоих множителей.
abstract def /(divisor: Double): Duration
Возвращает эту длительность, разделенную на скалярный коэффициент. При работе с бесконечными коэффициентами семантика соответствует Double.
- Исключения
IllegalArgumentExceptionв случае конечного переполнения: диапазон конечной длительности+-(2^63-1)ns, and no conversion to infinite durations takes place.
abstract def compare(that: Duration): Int
Результат сравнения this с операндом that.
Реализуйте этот метод, чтобы определить, как будут сортироваться экземпляры A.
Возвращает x где:
x < 0 когда this < that
x == 0 когда this == that
x > 0 когда this > that
- Определяющие классы
- Ordered
abstract def isFinite: Boolean
abstract def length: Long
Получить длительность этой длительности, измеренную в единицах, полученных методом unit.
- Исключения
IllegalArgumentExceptionпри вызове для бесконечной длительности
abstract def toCoarsest: Duration
Возвращает длительность, равную этой длительности, но с самой грубой единицей измерения, или себя, если она уже самая грубая единица.
Примеры:
Duration(60, MINUTES).toCoarsest // Duration(1, HOURS) Duration(1000, MILLISECONDS).toCoarsest // Duration(1, SECONDS) Duration(48, HOURS).toCoarsest // Duration(2, DAYS) Duration(5, SECONDS).toCoarsest // Duration(5, SECONDS)
abstract def toDays: Long
Возвращает длительность этой длительности, измеренную в целых днях, округляя к нулю.
- Исключения
IllegalArgumentExceptionпри вызове для бесконечной длительности
abstract def toHours: Long
Возвращает длительность этой длительности, измеренную в целых часах, округляя к нулю.
- Исключения
IllegalArgumentExceptionпри вызове для бесконечной длительности
abstract def toMicros: Long
Возвращает длительность этой длительности, измеренную в целых микросекундах, округляя к нулю.
- Исключения
IllegalArgumentExceptionпри вызове для бесконечной длительности
abstract def toMillis: Long
Возвращает длительность этой длительности, измеренную в целых миллисекундах, округляя к нулю.
- Исключения
IllegalArgumentExceptionпри вызове для бесконечной длительности
abstract def toMinutes: Long
Возвращает длительность этой продолжительности в целых минутах, округляя к нулю.
- Исключения
IllegalArgumentExceptionпри вызове для бесконечной продолжительности
abstract def toNanos: Long
Возвращает длительность этой продолжительности в целых наносекундах, округляя к нулю.
- Исключения
IllegalArgumentExceptionпри вызове для бесконечной продолжительности
abstract def toSeconds: Long
Возвращает длительность этой продолжительности в целых секундах, округляя к нулю.
- Исключения
IllegalArgumentExceptionпри вызове для бесконечной продолжительности
abstract def toUnit(unit: TimeUnit): Double
Возвращает число наносекунд как число с плавающей точкой, масштабированное до заданной единицы измерения. Результат может не точно представлять эту продолжительность из-за ограничений типа Double (размер мантиссы фактически 53 бита). Бесконечные продолжительности представлены как
-
Duration.Undefined отображается как Double.NaN
Duration.Inf отображается как Double.PositiveInfinity
Duration.MinusInf отображается как Double.NegativeInfinity
abstract def unary_-: Duration
Изменение знака продолжительности. Единственные два значения, отображаемые в себя, это Duration.Zero и Duration.Undefined.
abstract def unit: TimeUnit
Получение единицы измерения времени, в которой измеряется длительность.
- Исключения
IllegalArgumentExceptionпри вызове для бесконечной продолжительности
Члены конкретных значений
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), в противном случае false.
- Классы определений
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для числовых типов он возвращает хеш-значение, которое согласуется с равенством значений: если два экземпляра типа значения сравниваются как true, то ## будет генерировать одинаковое хеш-значение для каждого из них. Для null возвращает хеш-код, где null.hashCode вызывает NullPointerException.
- возвращает
хеш-значение, согласованное с ==
- Классы определений
- AnyRef → Any
def ->[B](y: B): (Duration, B)
- Неявный
- Этот член добавлен с помощью неявного преобразования из Duration в ArrowAssoc[Duration], выполненного методом ArrowAssoc в scala.Predef.
- Классы определений
- ArrowAssoc
- Аннотации
- @inline()
def <(that: Duration): Boolean
Возвращает true, если this меньше that
- Классы определений
- Ordered
def <=(that: Duration): Boolean
Возвращает true, если this меньше или равно that.
- Классы определений
- Ordered
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
trueесли объект получателя эквивалентен аргументу;falseв противном случае.
- Классы определений
- AnyRef → Any
def >(that: Duration): Boolean
Возвращает true, если this больше that.
- Классы определений
- Ordered
def >=(that: Duration): Boolean
Возвращает true, если this больше или равно that.
- Классы определений
- Ordered
final def asInstanceOf[T0]: T0
Преобразует объект получателя к типу T0.
Обратите внимание, что успех преобразования во время выполнения зависит от семантики стирания Scala. Таким образом, выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] не выбросит. В последнем примере, поскольку аргумент типа стирается во время компиляции, нельзя проверить, относятся ли содержимое списка к нужному типу.
- возвращает
объект получателя.
- Классы определений
- Any
- Исключения
ClassCastException, если объект получателя не является экземпляром стирания типаT0.
def clone(): AnyRef
Создает копию объекта получателя.
Реализация метода clone по умолчанию зависит от платформы.
- возвращает
копию объекта получателя.
def compareTo(that: Duration): Int
Результат сравнения this с операндом that.
- Классы определений
- Ordered → Comparable
def div(other: Duration): Double
Возвращает частное от деления этого и данного промежутка времени как число с плавающей запятой. Семантика определяется типом Double, как если бы производилось вычисление частного от длины в наносекундах обоих сомножителей.
def div(divisor: Double): Duration
Возвращает этот промежуток времени, делённый на скалярный множитель. При работе с бесконечными множителями семантика соответствует семантике Double.
- Исключения
IllegalArgumentExceptionв случае конечного переполнения: диапазон конечного промежутка времени —+-(2^63-1)ns, and no conversion to infinite durations takes place.
def ensuring(cond: (Duration) => Boolean, msg: => Any): Duration
- Неявный
- Этот член добавляется неявным преобразованием из Duration вEnsuring[Duration] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (Duration) => Boolean): Duration
- Неявный
- Этот член добавляется неявным преобразованием из Duration вEnsuring[Duration] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: => Any): Duration
- Неявный
- Этот член добавляется неявным преобразованием из Duration вEnsuring[Duration] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): Duration
- Неявный
- Этот член добавляется неявным преобразованием из Duration вEnsuring[Duration] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на объект-приёмник (this).
Метод eq реализует отношение эквивалентности на непустых экземплярах AnyRef, и обладает тремя дополнительными свойствами:
-
Он согласован: для любых непустых экземпляров
x и y типа AnyRef, несколько вызовов x.eq(y) последовательно возвращают true или последовательно возвращают false.Для любого непустого экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false.
null.eq(null) возвращает true. При переопределении методов equals или hashCode важно гарантировать, что их поведение согласуется с равенством ссылок. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны иметь одинаковое значение хеша (o1.hashCode == o2.hashCode).
- возвращает
trueесли аргумент является ссылкой на объект-приёмник;falseв противном случае.
- Определяющие классы
- AnyRef
def equals(arg0: AnyRef): Boolean
Метод равенства для ссылочных типов. Реализация по умолчанию делегирует вызов eq.
См. также equals в scala.Any.
- возвращает
trueесли объект-приёмник эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Any
def finalize(): Unit
Вызывается сборщиком мусора для объекта-приёмника, когда на него больше нет ссылок.
Подробности о том, когда и как вызывается метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями зависят от платформы.
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной строкой format. Строки форматирования аналогичны String.format (@см. java.lang.String.format).
- Неявный
- Этот член добавлен неявным преобразованием из Duration в StringFormat[Duration] с помощью метода StringFormat в scala.Predef.
- Классы определения
- StringFormat
- Аннотации
- @inline()
final def getClass(): Class[_ <: AnyRef]
Возвращает представление класса во время выполнения для объекта.
- возвращает
объект класса, соответствующий типу получателя во время выполнения.
def gt(other: Duration): Boolean
def gteq(other: Duration): Boolean
def hashCode(): Int
Метод hashCode для ссылочных типов. См. hashCode в scala.Any.
- возвращает
значение кода хэша для этого объекта.
final def isInstanceOf[T0]: Boolean
Проверяет, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат проверки учитывает стирание семантики Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, из-за стирания аргумента типа во время компиляции, невозможно проверить, относятся ли элементы списка к указанному типу.
- возвращает
true, если объект-получатель является экземпляром стирания типаT0;falseв противном случае.
- Классы определения
- Any
def lt(other: Duration): Boolean
def lteq(other: Duration): Boolean
def max(other: Duration): Duration
def min(other: Duration): Duration
def minus(other: Duration): Duration
Возвращает разницу между этой продолжительностью и заданной. При работе с бесконечными значениями семантика соответствует семантике Double.
- Исключения
IllegalArgumentExceptionв случае конечного переполнения: диапазон конечной продолжительности+-(2^63-1)ns, and no conversion to infinite durations takes place.
def mul(factor: Double): Duration
Возвращает эту продолжительность, умноженную на скалярный множитель. При работе с бесконечными значениями семантика соответствует семантике Double.
- Исключения
IllegalArgumentExceptionв случае конечного переполнения: диапазон конечной продолжительности+-(2^63-1)ns, and no conversion to infinite durations takes place.
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- возвращает
trueесли аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Классы определения
- AnyRef
def neg(): Duration
Изменяет знак этой продолжительности. Единственные два значения, которые отображаются на себя, это Duration.Zero и Duration.Undefined.
final def notify(): Unit
Разбуждает единственную нить, ожидавшую монитора объекта-приемника.
- Классы-определения
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как член AnyRef
final def notifyAll(): Unit
Разбуждает все нити, ожидавающие монитора объекта-приемника.
- Классы-определения
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как член AnyRef
def plus(other: Duration): Duration
Возвращает сумму этой длительности и переданной. При работе с бесконечными слагаемыми семантика соответствует семантике Double.
- Исключения
IllegalArgumentExceptionв случае конечного переполнения: диапазон конечной длительности+-(2^63-1)ns, and no conversion to infinite durations takes place.
def productArity: Int
Арность этого произведения.
- возвращает
2
def productElement(n: Int): Any
Возвращает n-ую проекцию этого произведения, если 0 <= n < productArity, в противном случае выбрасывает IndexOutOfBoundsException.
- n
номер проекции, которая должна быть возвращена
- возвращает
то же, что и
._(n+1), например,productElement(0)то же, что и._1.
- Неявный
- Этот член добавлен неявным преобразованием из Duration в (Long, TimeUnit) с помощью метода durationToPair в scala.concurrent.duration.
- Классы-определения
- Product2 → Product
- Аннотации
- @throws(classOf[IndexOutOfBoundsException])
- Исключения
IndexOutOfBoundsException, еслиnвыходит за пределы диапазона (n < 0 || n >= 2).
def productElementNames: Iterator[String]
Итератор по именам всех элементов этого произведения.
- Неявный
- Этот член добавлен неявным преобразованием из Duration в (Long, TimeUnit) с помощью метода durationToPair в scala.concurrent.duration.
- Классы-определения
- Product
def swap: (TimeUnit, Long)
Меняет местами элементы этого Tuple.
- возвращает
новый кортеж, где первый элемент — второй элемент этого кортежа, а второй элемент — первый элемент этого кортежа.
- Неявный
- Этот член добавлен неявным преобразованием из Duration в (Long, TimeUnit) с помощью метода durationToPair в scala.concurrent.duration.
- Классы-определения
- Tuple2
final def synchronized[T0](arg0: => T0): T0
- Классы-определения
- AnyRef
def toString(): String
Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это объединение имени класса, «@» и хэш-кода объекта в шестнадцатеричном формате.
- возвращает
строковое представление объекта.
- Классы-определения
- AnyRef → Any
final def wait(): Unit
- Классы-определения
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long, arg1: Int): Unit
Члены-значения неявного затемнения
def +(other: String): String
- Неявный
- Этот член добавлен неявным преобразованием из Duration вany2stringadd[Duration] с помощью метода any2stringadd в scala.Predef.
- Затемнение
- Этот неявный унаследованный член затемнён одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(duration: any2stringadd[Duration]).+(other)
- Определяющие классы
- any2stringadd
def <(that: Duration): Boolean
Возвращает true, если this меньше, чем that
- Неявный
- Этот член добавлен неявным преобразованием из Duration вmath.Ordered[Duration] с помощью метода orderingToOrdered в scala.math.Ordered.
- Затемнение
- Этот неявный унаследованный член затемнён одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(duration: math.Ordered[Duration]).<(that)
- Определяющие классы
- Ordered
def <=(that: Duration): Boolean
Возвращает true, если this меньше или равно that.
- Неявный
- Этот член добавлен неявным преобразованием из Duration вmath.Ordered[Duration] с помощью метода orderingToOrdered в scala.math.Ordered.
- Затемнение
- Этот неявный унаследованный член затемнён одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(duration: math.Ordered[Duration]).<=(that)
- Определяющие классы
- Ordered
def >(that: Duration): Boolean
Возвращает true, если this больше, чем that.
- Неявный
- Этот член добавлен неявным преобразованием из Duration вmath.Ordered[Duration] с помощью метода orderingToOrdered в scala.math.Ordered.
- Затемнение
- Этот неявный унаследованный член затемнён одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(duration: math.Ordered[Duration]).>(that)
- Определяющие классы
- Ordered
def >=(that: Duration): Boolean
Возвращает true, если this больше или равно that.
- Неявный
- Этот член добавлен неявным преобразованием из Duration вmath.Ordered[Duration] с помощью метода orderingToOrdered в scala.math.Ordered.
- Затемнение
- Этот неявный унаследованный член затемнён одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(duration: math.Ordered[Duration]).>=(that)
- Определяющие классы
- Ordered
def compare(that: Duration): Int
Результат сравнения this с операндом that.
Реализуйте этот метод, чтобы определить способ сортировки экземпляров A.
Возвращает x, где:
x < 0 когда this < that
x == 0 когда this == that
x > 0 когда this > that
- Неявный
- Этот член добавлен неявным преобразованием из Duration вmath.Ordered[Duration] с помощью метода orderingToOrdered в scala.math.Ordered.
- Затемнение
- Этот неявный унаследованный член затемнён одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(duration: math.Ordered[Duration]).compare(that)
- Определяющие классы
- Ordered
def compareTo(that: Duration): Int
Результат сравнения this с операндом that.
- Неявное
- Этот член добавлен благодаря неявной конверсии из Duration в math.Ordered[Duration] с помощью метода orderingToOrdered в scala.math.Ordered.
- Затенение
- Этот неявно унаследованный член затенён одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типов:(duration: math.Ordered[Duration]).compareTo(that)
- Классы-определения
- Ordered → Comparable
def toString(): String
Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, «@» и хэш-кода объекта в шестнадцатеричном формате.
- возвращает
строковое представление объекта.
- Неявное
- Этот член добавлен благодаря неявной конверсии из Duration в (Long, TimeUnit) с помощью метода durationToPair в scala.concurrent.duration.
- Затенение
- Этот неявно унаследованный член затенён одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типов:(duration: (Long, TimeUnit)).toString()
- Классы-определения
- Tuple2 → AnyRef → Any
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/concurrent/duration/Duration.html
Утилита для работы с продолжительностями java.util.concurrent.TimeUnit.
Этот класс не предназначен для общего представления времени, он оптимизирован для потребностей
scala.concurrent.Базовое использование
Примеры:
Вызов невыразимых преобразований (например, вызов
toSecondsдля бесконечной продолжительности) вызовет IllegalArgumentException.Также предоставляются неявные преобразования для Int, Long и Double. Пример использования:
Предоставленный неявными преобразованиями DSL всегда позволяет создавать конечные продолжительности, даже для бесконечных входов типа Double; используйте Duration.Inf вместо этого.
Также включены экстрактные функции, парсинг и арифметические операции:
val d = Duration("1.2 µs") val Duration(length, unit) = 5 millis val d2 = d * 2.5 val d3 = d2 + 1.millisecondОбработка единиц времени
Вычисления, выполняемые с конечными продолжительностями, всегда сохраняют более точную единицу из обоих операндов, независимо от того, может ли более грубая единица точно выразить ту же продолжительность. Это означает, что Duration можно использовать как безопасный контейнер для пары (длина, единица), если он создаётся соответствующими методами и над ним не выполняются арифметические операции; в этом случае сложение/вычитание продолжительностей следует производить с осторожностью.
Соответствие семантике Double
Семантика арифметических операций над Duration двусторонняя:
java.lang.Doubleв отношении бесконечных или неопределённых значенийПреобразование между Duration и Double выполняется с помощью Duration.toUnit (с единицей NANOSECONDS) и Duration.fromNanos(Double)
Сортировка
По умолчанию используется порядок, согласованный с порядком чисел Double, что означает, что Undefined считается больше всех других продолжительностей, включая Duration.Inf.