Spec-Zone.ru › Scala 2.13 Reflection

Трейт scala.reflect.api.FlagSets

Трейт FlagSets extends AnyRef

ЭКСПЕРИМЕНТАЛЬНО

Трейт, определяющий наборы флагов и операции над ними.

Flag используются для предоставления модификаторов для абстрактных синтаксических деревьев, которые представляют определения через поле flags объекта scala.reflect.api.Trees#Modifiers. Деревья, которые принимают модификаторы:

  • scala.reflect.api.Trees#ClassDef. Классы и траиты.
  • scala.reflect.api.Trees#ModuleDef. Объекты.
  • scala.reflect.api.Trees#ValDef. Объявления val, var, параметры и аннотации self-типа.
  • scala.reflect.api.Trees#DefDef. Методы и конструкторы.
  • scala.reflect.api.Trees#TypeDef. Псевдонимы типов, абстрактные члены типов и параметры типов.

Например, чтобы создать класс с именем C, можно написать что-то вроде:

ClassDef(Modifiers(NoFlags), TypeName("C"), Nil, ...)

Здесь набор флагов пустой.

Чтобы сделать C приватным, можно написать что-то вроде:

ClassDef(Modifiers(PRIVATE), TypeName("C"), Nil, ...)

Флаги также можно комбинировать с оператором вертикальной черты (|). Например, приватный финальный класс записывается примерно так:

ClassDef(Modifiers(PRIVATE | FINAL), TypeName("C"), Nil, ...)

Список всех доступных флагов определен в scala.reflect.api.FlagSets#FlagValues, доступный через scala.reflect.api.FlagSets#Flag. (Обычно используется импорт с подстановкой, например, import scala.reflect.runtime.universe.Flag._).

Деревья определений компилируются в символы, поэтому флаги на модификаторах этих деревьев преобразуются во флаги на результирующих символах. В отличие от деревьев, символы не раскрывают флаги, а вместо этого предоставляют методы проверки isXXX (например, isFinal можно использовать для проверки финальности). Эти методы проверки могут потребовать преобразования с помощью asTerm, asType или asClass, поскольку некоторые флаги имеют смысл только для определенных типов символов.

Примечание: Эта часть API рефлексии рассматривается как кандидат на переработку. В будущих версиях API рефлексии наборы флагов могут быть заменены чем-то другим.

Для получения дополнительной информации о FlagSet и других аспектах рефлексии Scala см. Руководство по рефлексии

Self Type
Universe
Источник
FlagSets.scala
Линейные супертипы
AnyRef, Any
Известные подклассы
JavaUniverse, Universe, Universe

Члены типа

ТрейтFlagOps extends Any

API экземпляров FlagSet. Основным источником информации о наборах флагов является страница scala.reflect.api.FlagSets.

Абстрактный типFlagSet

ТрейтFlagValues extends AnyRef

Все возможные значения, которые могут составлять наборы флагов. Основным источником информации о наборах флагов является страница scala.reflect.api.FlagSets.

Абстрактные члены-значения

Абстрактный valFlag: Universe.FlagValues

Абстрактный valNoFlags: Universe.FlagSet

Неявный абстрактный defaddFlagOps(left: Universe.FlagSet): Universe.FlagOps

Члены конкретных значений

final def !=(arg0: Any): Boolean

Определяющие классы
AnyRef → Any

final def ##(): Int

Определяющие классы
AnyRef → Any

def +(other: String): String

Неявный
Этот член добавлен благодаря неявной конвертации из FlagSets вany2stringadd[FlagSets] с помощью метода any2stringadd в scala.Predef.
Определяющие классы
any2stringadd

def ->[B](y: B): (FlagSets, B)

Неявный
Этот член добавлен благодаря неявной конвертации из FlagSets вArrowAssoc[FlagSets] с помощью метода 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: (FlagSets) => Boolean, msg: => Any): FlagSets

Неявный
Этот член добавлен благодаря неявной конвертации из FlagSets вEnsuring[FlagSets] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: (FlagSets) => Boolean): FlagSets

Неявный
Этот член добавлен благодаря неявной конвертации из FlagSets вEnsuring[FlagSets] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: Boolean, msg: => Any): FlagSets

Неявный
Этот член добавлен благодаря неявной конвертации из FlagSets вEnsuring[FlagSets] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: Boolean): FlagSets

Неявный
Этот член добавлен благодаря неявной конвертации из FlagSets вEnsuring[FlagSets] с помощью метода 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

Неявный
Этот член добавлен с помощью неявного преобразования из FlagSets вStringFormat[FlagSets] выполненное методом 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/FlagSets.html

Spec-Zone.ru

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