Класс Any.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()
Дополнительные сведения о взаимодействии универсальных трейтов и классов значений см. в разделе Классы значений и универсальные трейты.
Конкретные методы
Проверка двух объектов на неравенство.
| Параметры значения |
|
|---|---|
| Возвращает |
|
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел возвращается значение хэш-кода, которое согласуется с равенством значений: если два экземпляра типа значения сравниваются как true, то ## вернёт одинаковое значение хэш-кода для каждого из них. Для null возвращает хэш-код, где null.hashCode выбрасывает NullPointerException.
| Возвращает | значение хэш-кода, согласованное с == |
|---|
Проверка двух объектов на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
| Параметры значения |
|
|---|---|
| Возвращает |
|
final def asInstanceOf[X0]: X0
Преобразование объекта-получателя к типу T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания типов Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] не выбросит. В последнем примере, поскольку аргумент типа стирается при компиляции, нельзя проверить, соответствуют ли содержимое списка требуемому типу.
| Возвращает | объект-получатель. |
|---|---|
| Выбрасывает |
|
Сравнивает объект-получатель (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)).
| Параметры значения |
|
|---|---|
| Возвращает |
|
Возвращает представление класса объекта во время выполнения.
| Возвращает | объект класса, соответствующий типу получателя во время выполнения. |
|---|
Вычисление значения хэш-кода для объекта.
По умолчанию алгоритм хэширования зависит от платформы.
Обратите внимание, что для двух объектов допустимо иметь одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)) но при этом не быть равными (o1.equals(o2) возвращает false). Вырожденная реализация может всегда возвращать 0. Однако, требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true), у них были одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода необходимо убедиться, что поведение согласуется с методом equals.
| Возвращает | значение хэш-кода для этого объекта. |
|---|
final def isInstanceOf[X0]: Boolean
Проверка, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат проверки зависит от семантики стирания типов Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, в то время как выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, поскольку аргумент типа стирается во время компиляции, нельзя проверить, соответствуют ли содержимое списка указанному типу.
| Возвращает |
|
|---|
Возвращает строковое представление объекта.
По умолчанию представление зависит от платформы.
| Возвращает | строковое представление объекта. |
|---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/Any.html