Spec-Zone.ru › Scala 3.1

Класс scala.Any

абстрактный открытый класс Any

Класс Any является корнем иерархии классов Scala. Каждый класс в среде выполнения Scala наследуется напрямую или косвенно от этого класса.

Начиная со Scala 2.10, можно напрямую расширить Any с помощью универсальных трейтов. Универсальный трейт — это трейт, который расширяет Any, имеет только def в качестве членов и не выполняет инициализацию.

Основной случай использования универсальных трейтов — это возможность базового наследования методов для классов значений. Например,

trait Printable extends Any {
  def print(): Unit = println(this)
}
class Wrapper(val underlying: Int) extends AnyVal with Printable

val w = new Wrapper(3)
w.print()

См. Классы значений и универсальные трейты для получения дополнительной информации о взаимодействии универсальных трейтов и классов значений.

Конкретные методы

финальный def !=(x$0: Any): Boolean

Проверка двух объектов на неравенство.

Параметры значения
that

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

Возвращает

true если !(this == that), false в противном случае.

финальный def ##: Int

Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для числовых типов он возвращает значение хэша, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## вернет одно и то же значение хэша для каждого из них. Для null возвращает хэш-код, где null.hashCode вызывает NullPointerException.

Возвращает

значение хэша, согласованное с ==

финальный def ==(x$0: Any): Boolean

Проверка двух объектов на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).

Параметры значения
that

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

Возвращает

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

финальный def asInstanceOf[X0]: X0

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

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

Возвращает

объект-приемник.

Выбрасывает
ClassCastException

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

def equals(x$0: 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 в противном случае.

финальный def getClass[X0 = Any](): Class[_ <: X0]

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

Возвращает

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

def hashCode(): Int

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

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

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

Возвращает

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

финальный def isInstanceOf[X0]: Boolean

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

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

Возвращает

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

def toString(): String

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

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

Возвращает

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

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/Any.html

Spec-Zone.ru

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