Класс 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()
См. Классы значений и универсальные трейты для получения дополнительной информации о взаимодействии универсальных трейтов и классов значений.
Конкретные методы
Проверка двух объектов на неравенство.
| Параметры значения |
|
|---|---|
| Возвращает |
|
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для числовых типов он возвращает значение хэша, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## вернет одно и то же значение хэша для каждого из них. Для null возвращает хэш-код, где null.hashCode вызывает NullPointerException.
| Возвращает | значение хэша, согласованное с == |
|---|
Проверка двух объектов на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
| Параметры значения |
|
|---|---|
| Возвращает |
|
финальный 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.
| Возвращает | значение хэша для этого объекта. |
|---|
финальный 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.1.1/scala/Any.html