Трейт scala.reflect.api.Annotations
Трейт Annotations extends AnyRef
Типовые члены
абстрактный тип Annotation >: Null <: Universe.AnnotationApi
ТрейтAnnotationApi extends AnyRef
API экземпляров Annotation. Основным источником информации об аннотациях является страница scala.reflect.api.Annotations.
абстрактный классAnnotationExtractor extends AnyRef
Класс-экстрактор для создания и сопоставления с образцом с синтаксисом Annotation(tpe, scalaArgs, javaArgs). Здесь tpe - тип аннотации, scalaArgs - полезная нагрузка аннотаций Scala, и javaArgs - полезная нагрузка аннотаций Java.
Абстрактные члены-значения
абстрактный val Annotation: Universe.AnnotationExtractor
абстрактный def annotationToTree(ann: Universe.Annotation): Universe.Tree
- Атрибуты
- protected[scala]
абстрактный def treeToAnnotation(tree: Universe.Tree): Universe.Annotation
- Атрибуты
- protected[scala]
Члены-значения
final def !=(arg0: Any): Boolean
- Определяющие классы
- AnyRef → Any
final def ##(): Int
- Определяющие классы
- AnyRef → Any
def +(other: String): String
- Неявный
- Этот член добавлен неявным преобразованием из Annotations вany2stringadd[Annotations] с помощью метода any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
def ->[B](y: B): (Annotations, B)
- Неявный
- Этот член добавлен неявным преобразованием из Annotations вArrowAssoc[Annotations] с помощью метода ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
final def ==(arg0: Any): Boolean
- Определяющие классы
- AnyRef → Any
final def asInstanceOf[T0]: T0
- Определяющие классы
- Any
def clone(): AnyRef
- Атрибуты
- protected[java.lang]
- Определяющие классы
- AnyRef
- Аннотации
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
def ensuring(cond: (Annotations) => Boolean, msg: => Any): Annotations
- Неявный
- Этот член добавлен неявным преобразованием из Annotations вEnsuring[Annotations] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (Annotations) => Boolean): Annotations
- Неявный
- Этот член добавлен неявным преобразованием из Annotations вEnsuring[Annotations] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: => Any): Annotations
- Неявный
- Этот член добавлен неявным преобразованием из Annotations вEnsuring[Annotations] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): Annotations
- Неявный
- Этот член добавлен неявным преобразованием из Annotations вEnsuring[Annotations] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
final def eq(arg0: AnyRef): Boolean
- Определяющие классы
- AnyRef
def equals(arg0: AnyRef): Boolean
- Определяющие классы
- AnyRef → Any
def finalize(): Unit
- Атрибуты
- protected[java.lang]
- Определяющие классы
- AnyRef
- Аннотации
- @throws(classOf[java.lang.Throwable])
def formatted(fmtstr: String): String
- Неявный
- Этот член добавлен неявным преобразованием из Annotations в StringFormat[Annotations] , выполненное методом StringFormat в scala.Predef.
- Классы определений
- StringFormat
- Аннотации
- @inline()
final def getClass(): Class[_ <: AnyRef]
- Классы определений
- AnyRef → Any
- Аннотации
- @native()
def hashCode(): Int
- Классы определений
- AnyRef → Any
- Аннотации
- @native()
final def isInstanceOf[T0]: Boolean
- Классы определений
- Any
final def ne(arg0: AnyRef): Boolean
- Классы определений
- AnyRef
final def notify(): Unit
- Классы определений
- AnyRef
- Аннотации
- @native()
final def notifyAll(): Unit
- Классы определений
- AnyRef
- Аннотации
- @native()
final def synchronized[T0](arg0: => T0): T0
- Классы определений
- AnyRef
def toString(): String
- Классы определений
- AnyRef → Any
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-reflect/scala/reflect/api/Annotations.html
ЭКСПЕРИМЕНТАЛЬНО
Этот трейт предоставляет поддержку аннотаций для API рефлексии.
В Scala аннотации относятся к одной из двух категорий:
При компиляции аннотации Scala, наследующей от scala.annotation.StaticAnnotation, она хранится как специальные атрибуты в соответствующем файле класса, а не как аннотация Java. Обратите внимание, что наследования только от scala.annotation.Annotation недостаточно для сохранения соответствующих метаданных для рефлексии во время выполнения.
Как аннотации Java, так и аннотации Scala представлены в виде типизированных деревьев, содержащих вызовы конструкторов, соответствующих аннотации. Например, аннотация в
@ann(1, 2) class Cпредставлена какq"@new ann(1, 2)".В отличие от рефлексии Java, рефлексия Scala не поддерживает оценку вызовов конструкторов, хранящихся в аннотациях, в базовые объекты. Например, невозможно перейти от
@ann(1, 2) class Cкann(1, 2), поэтому необходимо анализировать деревья, представляющие аргументы аннотации, чтобы вручную извлечь соответствующие значения. Для этой цели аргументы аннотации можно получить с помощьюannotation.tree.children.tail.Для получения дополнительной информации об
Annotationсм. Руководство по рефлексии: аннотации, имена, области видимости и многое другое