Трейт scala.reflect.ClassTag
Компаньон объект ClassTag
Трейт ClassTag[T] extends ClassManifestDeprecatedApis[T] with Equals with Serializable
Абстрактные значения членов
абстрактный def runtimeClass: Class[_]
Класс, представляющий тип U, к которому был бы стёрт тип T. Обратите внимание, что нет отношения подтипов между T и U.
Члены конкретных значений
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
- Неявный
- Этот член добавлен неявным преобразованием из ClassTag[T] вany2stringadd[ClassTag[T]] с помощью метода any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
def ->[B](y: B): (ClassTag[T], B)
- Неявный
- Этот член добавлен неявным преобразованием из ClassTag[T] вArrowAssoc[ClassTag[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 argString: String
- Атрибуты
- protected
- Классы определения
- ClassManifestDeprecatedApis
def arrayClass[A](tp: Class[_]): Class[Array[A]]
- Атрибуты
- protected
- Классы определения
- ClassManifestDeprecatedApis
final def asInstanceOf[T0]: T0
Преобразовать объект-получатель к типу T0.
Обратите внимание, что успех преобразования во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] — нет. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, содержатся ли элементы списка в требуемом типе.
- возвращает
объект-получатель.
- Классы определения
- Any
- Исключения
ClassCastException, если объект-получатель не является экземпляром стирания типаT0.
def canEqual(x: Any): Boolean
Метод, который следует вызывать из каждого хорошо спроектированного метода equals, открытого для переопределения в подклассе. См. Programming in Scala, Chapter 28 для обсуждения и проектирования.
- возвращает
true, если этот экземпляр потенциально может быть равен
that, иначе false
- Классы определения
- ClassTag → Equals → ClassManifestDeprecatedApis
def clone(): AnyRef
Создать копию объекта-получателя.
По умолчанию реализация метода clone зависит от платформы.
- returns
копия объекта-получателя.
def ensuring(cond: (ClassTag[T]) => Boolean, msg: => Any): ClassTag[T]
- Неявный
- Этот член добавлен неявным преобразованием из ClassTag[T] вEnsuring[ClassTag[T]] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (ClassTag[T]) => Boolean): ClassTag[T]
- Неявный
- Этот член добавлен неявным преобразованием из ClassTag[T] вEnsuring[ClassTag[T]] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: => Any): ClassTag[T]
- Неявный
- Этот член добавлен неявным преобразованием из ClassTag[T] вEnsuring[ClassTag[T]] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): ClassTag[T]
- Неявный
- Этот член добавлен с помощью неявного преобразования из ClassTag[T] в Ensuring[ClassTag[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(x: Any): Boolean
Универсальный метод равенства, определённый в AnyRef.
def finalize(): Unit
Вызывается сборщиком мусора для объекта-получателя, когда больше нет ссылок на объект.
Подробности о том, когда и вызывается метод finalize, а также взаимодействии finalize с нелокальными возвратами и исключениями, зависят от платформы.
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной строкой format. Строки форматирования соответствуют String.format (@см. java.lang.String.format).
- Неявный
- Этот член добавляется неявным преобразованием из ClassTag[T] в StringFormat[ClassTag[T]] с помощью метода StringFormat в scala.Predef.
- Определяющие классы
- StringFormat
- Аннотации
- @inline()
final def getClass(): Class[_ <: AnyRef]
Возвращает представление класса объекта во время выполнения.
- возвращает
объект класса, соответствующий типу получателя во время выполнения.
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
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- возвращает
true, если аргумент не является ссылкой на объект получателя;falseв противном случае.
- Определяющие классы
- AnyRef
def newArray(len: Int): Array[T]
final def notify(): Unit
Разбуждает единственную нить, ожидающую монитор объекта-получателя.
- Definition Classes
- AnyRef
- Annotations
- @native()
- Примечание
не указано SLS в качестве члена AnyRef
final def notifyAll(): Unit
Разбуждает все нити, ожидающие монитор объекта-получателя.
- Definition Classes
- AnyRef
- Annotations
- @native()
- Примечание
не указано SLS в качестве члена AnyRef
final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
def toString(): String
Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, «@» и хэш-кода объекта в шестнадцатеричном формате.
- returns
строковое представление объекта.
def unapply(x: Any): Option[T]
Класс ClassTag[T] может использоваться в качестве экстрактора, который соответствует только объектам типа T.
Компилятор пытается преобразовать неконтролируемые проверки типов в совпадениях шаблонов в проверяемые, обернув шаблон типа (_: T) как ct(_: T), где ct — экземпляр ClassTag[T]. Проверки типа, необходимые перед вызовом других экстракторов, обрабатываются аналогично. SomeExtractor(...) преобразуется в ct(SomeExtractor(...)) если T в SomeExtractor.unapply(x: T) не проверяется, но у нас есть экземпляр ClassTag[T].
final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
© 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/reflect/ClassTag.html
A
ClassTag[T]хранит стёртый класс заданного типаT, доступный через полеruntimeClass. Это особенно полезно для создания экземпляровArrayс типами элементов, неизвестными на этапе компиляции.ClassTagявляются более слабым частным случаем scala.reflect.api.TypeTags#TypeTagов, так как они оборачивают только класс в момент выполнения заданного типа, в то время какTypeTagсодержит всю статическую информацию о типе. То есть,ClassTagсоздаются, зная только верхний уровень класса типа, без необходимости знать все его аргументы типов. Эта информация о времени выполнения достаточна для создания экземпляровArrayв момент выполнения.Например:
scala> def mkArray[T : ClassTag](elems: T*) = Array[T](elems: _*) mkArray: [T](elems: T*)(implicit evidence$1: scala.reflect.ClassTag[T])Array[T] scala> mkArray(42, 13) res0: Array[Int] = Array(42, 13) scala> mkArray("Japan","Brazil","Germany") res1: Array[String] = Array(Japan, Brazil, Germany)См. scala.reflect.api.TypeTags для дополнительных примеров, или Руководство по рефлексии: TypeTags для более подробной информации.