Spec-Zone.ru › Scala 2.13 Library

Класс scala.ref.WeakReference

Компаньон объект WeakReference

класс WeakReference[+T <: AnyRef] extends ReferenceWrapper[T]

Класс-обёртка для java.lang.ref.WeakReference. Новые возможности: (1) результаты представлены в виде значений Option, вместо использования null. (2) Существует экстрактёр, который отображает саму слабую ссылку в опцию.

Источник
WeakReference.scala
Линейные супертипы
ReferenceWrapper[T], Proxy, Reference[T], () => T, AnyRef, Any

Конструкторы экземпляра

новый WeakReference(value: T)

новый WeakReference(value: T, queue: ReferenceQueue[T])

Члены-значения

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 +(other: String): String

Неявный
Этот член добавлен с помощью неявного преобразования из WeakReference[T] в any2stringadd[WeakReference[T]], выполненного методом any2stringadd в scala.Predef.
Определяющие классы
any2stringadd

def ->[B](y: B): (WeakReference[T], B)

Неявный
Этот член добавлен с помощью неявного преобразования из WeakReference[T] в ArrowAssoc[WeakReference[T]], выполненного методом ArrowAssoc в scala.Predef.
Определяющие классы
ArrowAssoc
Аннотации
@inline()

final def ==(arg0: Any): Boolean

Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).

возвращает

true если объект-получатель эквивалентен аргументу; false в противном случае.

Определяющие классы
AnyRef → Any

def apply(): T

Возвращает базовое значение.

возвращает

результат применения функции.

Определяющие классы
ReferenceWrapper → Reference → Function0

final def asInstanceOf[T0]: T0

Приведение объекта-получателя к типу T0.

Обратите внимание, что успех приведения во время выполнения определяется семантикой стирания Scala. Следовательно, выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] не выбросит. В последнем примере, так как аргумент типа стёрся во время компиляции, проверить, соответствуют ли содержимое списка требуемому типу, невозможно.

возвращает

объект-получатель.

Определяющие классы
Any
Исключения

ClassCastException, если объект-получатель не является экземпляром стирания типа T0.

def clear(): Unit

Определяющие классы
ReferenceWrapper → Reference

def clone(): AnyRef

Создаёт копию объекта-получателя.

По умолчанию реализация метода clone зависит от платформы.

возвращает

копию объекта-получателя.

Атрибуты
protected[java.lang]
Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @native()
Примечание

не задано SLS как член AnyRef

def enqueue(): Boolean

Определяющие классы
ReferenceWrapper → Reference

def ensuring(cond: (WeakReference[T]) => Boolean, msg: => Any): WeakReference[T]

Неявный
Этот член добавлен неявным преобразованием из WeakReference[T] в Ensuring[WeakReference[T]], выполненное методом Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: (WeakReference[T]) => Boolean): WeakReference[T]

Неявный
Этот член добавлен неявным преобразованием из WeakReference[T] в Ensuring[WeakReference[T]], выполненное методом Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: Boolean, msg: => Any): WeakReference[T]

Неявный
Этот член добавлен неявным преобразованием из WeakReference[T] в Ensuring[WeakReference[T]], выполненное методом Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: Boolean): WeakReference[T]

Неявный
Этот член добавлен неявным преобразованием из WeakReference[T] в Ensuring[WeakReference[T]], выполненное методом Ensuring в scala.Predef.
Определяющие классы
Ensuring

final def eq(arg0: AnyRef): Boolean

Проверяет, является ли переданный аргумент (that) ссылкой на объект-получатель (this).

Метод eq реализует отношение эквивалентности на не-null экземплярах AnyRef, и имеет три дополнительных свойства:

    Он согласован: для любых не-null экземпляров x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false.Для любого не-null экземпляра 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(that: Any): Boolean

Сравнивает объект-получатель (this) с объектом-аргументом (that) на эквивалентность.

Любая реализация этого метода должна быть отношением эквивалентности:

    Он рефлексивен: для любого экземпляра x типа Any, x.equals(x) должно возвращать true.Он симметричен: для любых экземпляров x и y типа Any, x.equals(y) должно возвращать true тогда и только тогда, когда y.equals(x) возвращает true.Он транзитивен: для любых экземпляров x, y, и z типа Any если x.equals(y) возвращает true и y.equals(z) возвращает true, тогда x.equals(z) должно возвращать true.

Если вы переопределяете этот метод, вы должны убедиться, что ваша реализация остается отношением эквивалентности. Кроме того, при переопределении этого метода обычно необходимо переопределить hashCode для обеспечения того, что объекты, которые "равны" (o1.equals(o2) возвращает true), хэшируются к одному и тому же значению scala.Int. (o1.hashCode.equals(o2.hashCode)).

that

объект для сравнения с этим объектом на равенство.

возвращает

true если объект-получатель эквивалентен аргументу; false в противном случае.

Определяющие классы
Proxy → Any

def finalize(): Unit

Вызывается сборщиком мусора для объекта-получателя, когда больше нет ссылок на объект.

Подробности о том, когда и если вызывается метод finalize, а также взаимодействии finalize с нелокальными возвратами и исключениями, зависят от платформы.

Атрибуты
protected[java.lang]
Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.Throwable])
Примечание

не указан в SLS как член AnyRef

def formatted(fmtstr: String): String

Возвращает строку, отформатированную в соответствии с заданной строкой format. Формат строк соответствует String.format (@см. java.lang.String.format).

Неявный
Этот член добавляется в результате неявного преобразования из WeakReference[T] вStringFormat[WeakReference[T]] с помощью метода StringFormat в scala.Predef.
Определяющие классы
StringFormat
Аннотации
@inline()

def get: Option[T]

возвращает Some базовое значение, если оно ещё не собрано, иначе None

Определяющие классы
ReferenceWrapper → Reference

final def getClass(): Class[_ <: AnyRef]

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

возвращает

объект класса, соответствующий типу получателя во время выполнения.

Определяющие классы
AnyRef → Any
Аннотации
@native()

def hashCode(): Int

Вычисляет значение хэш-кода для объекта.

Алгоритм хэширования по умолчанию зависит от платформы.

Заметьте, что для двух объектов возможно получение одинаковых хэш-кодов (o1.hashCode.equals(o2.hashCode)) при этом они не обязательно равны (o1.equals(o2) возвращает false). Вырожденная реализация может всегда возвращать 0. Однако требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true), то у них были идентичные хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода необходимо убедиться, что поведение согласуется с методом equals.

возвращает

значение хэш-кода для этого объекта.

Определяющие классы
Proxy → Any

def isEnqueued: Boolean

Определяющие классы
ReferenceWrapper → Reference

final def isInstanceOf[T0]: Boolean

Проверяет, является ли динамический тип объекта-получателя T0.

Обратите внимание, что результат проверки зависит от правил стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, так как тип аргумента стирается во время компиляции, невозможно проверить, относятся ли элементы списка к указанному типу.

возвращает

true если объект-получатель является экземпляром стирания типа T0; false в противном случае.

Определяющие классы
Any

final def ne(arg0: AnyRef): Boolean

Эквивалентно !(this eq that).

возвращает

true если аргумент не является ссылкой на объект-получатель; false в противном случае.

Определяющие классы
AnyRef

final def notify(): Unit

Разбудит одиночную нить, ожидающую монитор объекта-получателя.

Определяющие классы
AnyRef
Аннотации
@native()
Примечание

не указано SLS как член AnyRef

final def notifyAll(): Unit

Разбудит все нити, ожидающие монитор объекта-получателя.

Определяющие классы
AnyRef
Аннотации
@native()
Примечание

не указано SLS как член AnyRef

def self: java.lang.ref.Reference[_ <: T]

Определяющие классы
ReferenceWrapper → Proxy

final def synchronized[T0](arg0: => T0): T0

Определяющие классы
AnyRef

def toString(): String

Возвращает строковое представление объекта.

Представление по умолчанию зависит от платформы.

возвращает

строковое представление объекта.

Определяющие классы
Proxy → Any

val underlying: java.lang.ref.WeakReference[_ <: T]

Определяющие классы
WeakReference → ReferenceWrapper

final def wait(): Unit

Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long, arg1: Int): Unit

Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException]) @native()

© 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/ref/WeakReference.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API