Spec-Zone.ru › Scala 2.13 Reflection

Трейт scala.reflect.api.Internals.FreeTypeSymbolApi

trait FreeTypeSymbolApi extends Universe.TypeSymbolApi

API свободных типов символов. Основным источником информации о символах является страница Symbols.

$SYMACCESSORS

Self Type
Universe.FreeTypeSymbol
Source
Internals.scala
Линейные супертипы
Universe.TypeSymbolApi, Universe.SymbolApi, AnyRef, Any
Известные подклассы
FreeTypeSymbol

Типовые члены

final type NameType = Universe.TypeName

Символы типов имеют свои имена типа TypeName.

Определяющие классы
TypeSymbolApi → SymbolApi

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

abstract def alternatives: List[Universe.Symbol]

Перегруженные альтернативы этого символа.

Definition Classes
SymbolApi

abstract def annotations: List[Universe.Annotation]

Список аннотаций, прикреплённых к этому символу.

Definition Classes
SymbolApi

abstract def companion: Universe.Symbol

Для класса: его компаньон-объект, если он существует. Для модуля или модульного класса: компаньон-класс модуля, если он существует. Для пакета или класса пакета: NoSymbol. Для всех остальных: NoSymbol.

Definition Classes
SymbolApi

abstract def filter(cond: (Universe.Symbol) => Boolean): Universe.Symbol

Фильтры базовые альтернативы (или список с одним элементом, состоящим из самого символа, если символ не перегружен). Возвращает перегруженный символ, если есть несколько совпадений. Возвращает NoSymbol, если совпадений нет.

Definition Classes
SymbolApi

abstract def fullName: String

Кодированное полное имя пути этого символа, где внешние и внутренние имена разделены точками.

Definition Classes
SymbolApi

abstract def info: Universe.Type

Подпись типа этого символа.

Этот метод всегда возвращает подписи наиболее обобщённым способом, даже если базовый символ получен из экземпляра обобщённого типа. Например, подпись метода def map[B](f: (A) => B): List[B], который относится к параметру типа A объявляющего класса List[A], всегда будет содержать A, независимо от того, загружается ли map из List[_] или из List[Int]. Чтобы получить подпись с соответствующими параметрами типов, следует использовать infoIn.

Definition Classes
SymbolApi

abstract def infoIn(site: Universe.Type): Universe.Type

Подпись типа этого символа, рассматриваемого как член данного типа site.

Definition Classes
SymbolApi

abstract def isAbstract: Boolean

Является ли этот символ абстрактным (т.е. абстрактный класс, абстрактный метод, значение или член типа)?

Definition Classes
SymbolApi

abstract def isAbstractOverride: Boolean

Отмечен ли этот символ как «абстрактный переопределение»?

Definition Classes
SymbolApi

abstract def isAliasType: Boolean

Представляет ли этот символ определение псевдонима типа?

Definition Classes
TypeSymbolApi

abstract def isConstructor: Boolean

Представляет ли этот метод конструктор?

Если owner — класс, то это обычный конструктор JVM. Если owner — трайт, то это конструктор миксина.

Definition Classes
SymbolApi

abstract def isContravariant: Boolean

Является ли параметр типа, представленный этим символом, контравариантным?

Definition Classes
TypeSymbolApi

abstract def isCovariant: Boolean

Является ли параметр типа, представленный этим символом, ковариантным?

Definition Classes
TypeSymbolApi

abstract def isExistential: Boolean

Представляет ли этот символ экзистенциально связанный тип?

Definition Classes
TypeSymbolApi

abstract def isFinal: Boolean

Является ли этот символ финальным?

Definition Classes
SymbolApi

abstract def isImplementationArtifact: Boolean

Представляет ли этот символ артефакт реализации, не предназначенный для общего использования? Примерами таких артефактов являются мосты стирания и внешние поля.

Definition Classes
SymbolApi

abstract def isImplicit: Boolean

Является ли этот символ неявным значением, определением, классом или параметром?

Definition Classes
SymbolApi

abstract def isJava: Boolean

Определен ли этот символ Java?

Definition Classes
SymbolApi

abstract def isJavaAnnotation: Boolean

Представляет ли этот символ интерфейс аннотации java?

Definition Classes
SymbolApi

abstract def isJavaEnum: Boolean

Представляет ли этот символ класс перечисления Java или значение перечисления Java?

Definition Classes
SymbolApi

abstract def isMacro: Boolean

Является ли этот символ макросом?

Definition Classes
SymbolApi

abstract def isPackage: Boolean

Представляет ли этот символ определение пакета? Известные проблемы: https://github.com/scala/bug/issues/6732.

Definition Classes
SymbolApi

abstract def isPackageClass: Boolean

Представляет ли этот символ класс пакета? Если да, то isClass также гарантированно истинно.

Definition Classes
SymbolApi

abstract def isParameter: Boolean

Является ли этот символ параметром (параметром метода или параметром типа)?

Definition Classes
SymbolApi

abstract def isPrivate: Boolean

Представляет ли этот символ частное объявление или определение? Если да, privateWithin может рассказать больше об области видимости этого символа.

Definition Classes
SymbolApi

abstract def isPrivateThis: Boolean

Представляет ли этот символ объявление или определение, написанное в исходном файле как private[this] или сгенерированное в форме дерева/символа с сочетанием флагов LOCAL и PRIVATE? Если да, то isPrivate гарантированно истинно.

Definition Classes
SymbolApi

abstract def isProtected: Boolean

Представляет ли этот символ защищенное объявление или определение? Если да, то privateWithin может рассказать больше об области видимости этого символа.

Definition Classes
SymbolApi

abstract def isProtectedThis: Boolean

Представляет ли этот символ объявление или определение, написанное в исходном файле как protected[this] или сгенерированное в форме дерева/символа с сочетанием флагов LOCAL и PROTECTED? Если да, то isProtected гарантированно истинно.

Definition Classes
SymbolApi

abstract def isPublic: Boolean

Представляет ли этот символ общедоступное объявление или определение?

Definition Classes
SymbolApi

abstract def isSpecialized: Boolean

Является ли этот символ специализированным параметром типа или сгенерированным специализированным членом?

Definition Classes
SymbolApi

abstract def isStatic: Boolean

Является ли этот символ статическим (т.е. без внешнего экземпляра)? В: Когда точно sym отмечается как STATIC? Ответ: Если это член верхнеуровневого объекта, или объекта, содержащегося в верхнеуровневом объекте, или на любом количестве уровней вглубь. http://groups.google.com/group/scala-internals/browse_thread/thread/d385bcd60b08faf6

Definition Classes
SymbolApi

abstract def isSynthetic: Boolean

Представляет ли этот символ синтетический (т.е. сгенерированный компилятором) сущность? Примеры синтетических сущностей — это аксессоры для значений vals и vars.

Definition Classes
SymbolApi

abstract def map(f: (Universe.Symbol) => Universe.Symbol): Universe.Symbol

Если это NoSymbol, возвращает NoSymbol, в противном случае возвращает результат применения f к этому символу.

Definition Classes
SymbolApi

abstract def name: FreeTypeSymbol.NameType

Имя символа как члена типа Name.

Definition Classes
SymbolApi

abstract def orElse(alt: => Universe.Symbol): Universe.Symbol

Предоставляет альтернативу, если символ является NoSymbol.

Definition Classes
SymbolApi

abstract def origin: String

abstract def overrides: List[Universe.Symbol]

Возвращает все символы, переопределяемые этим символом.

Definition Classes
SymbolApi

abstract def owner: Universe.Symbol

Владелец этого символа. Это символ, который непосредственно содержит определение текущего символа. У символа NoSymbol нет владельца, и вызов этого метода для него вызывает внутреннюю ошибку. Владелец корневого класса Scala scala.reflect.api.Mirror.RootClass и корневого объекта Scala scala.reflect.api.Mirror.RootPackage — это NoSymbol. Каждый другой символ имеет цепочку владельцев, которая заканчивается на scala.reflect.api.Mirror.RootClass.

Definition Classes
SymbolApi

abstract def pos: Universe.Position

Позиция дерева.

Definition Classes
SymbolApi

abstract def privateWithin: Universe.Symbol

Устанавливается, когда символ имеет модификатор вида private[X] или protected[X], в противном случае NoSymbol.

Кодирование уровня доступа: существуют три флага Scala (PRIVATE, PROTECTED и LOCAL), которые в сочетании со значением privateWithin (части «foo» в private[foo]) определяют, откуда можно получить доступ к сущности. Значения:

PRIVATE доступ ограничен только классом. PROTECTED доступ ограничен классом и его подклассами. LOCAL может быть установлен только в сочетании с PRIVATE или PROTECTED. Дополнительно ограничивает доступ к той же инстанции объекта.

Кроме того, privateWithin может использоваться для установки барьера видимости. При установке, к нему есть доступ у всех элементов в указанном окружающем пакете или классе. Он несовместим с PRIVATE или LOCAL, но аддитивен с PROTECTED (т.е. если доступ разрешен либо флагами, либо privateWithin, то он разрешен).

Уровни доступа Java переводятся следующим образом:

java private: isPrivate && (privateWithin == NoSymbol) java package: !isPrivate && !isProtected && (privateWithin == enclosingPackage) java protected: isProtected && (privateWithin == enclosingPackage) java public: !isPrivate && !isProtected && (privateWithin == NoSymbol)

Definition Classes
SymbolApi

abstract def suchThat(cond: (Universe.Symbol) => Boolean): Universe.Symbol

Выполняет то же, что и filter, но аварийно завершает работу, если совпадений несколько.

Definition Classes
SymbolApi

abstract def toType: Universe.Type

Ссылка на тип, который ссылается на этот символ типа. Обратите внимание, если символ является членом класса, часто интересует asTypeIn со ссылочным типом вместо.

Пример: Приведенное объявление класса class C[T] { ... } , которое генерирует символ C. Тогда C.toType - это тип C[T].

В отличие от C.info, это сигнатура типа PolyType(ClassInfoType(...)), которая описывает типы параметров, параметры значений, родительские типы и члены C.

Definition Classes
TypeSymbolApi

abstract def toTypeConstructor: Universe.Type

Конструктор типа, соответствующий этому символу типа. Это отличается от toType тем, что типы параметров являются частью результатов toType, но не toTypeConstructor.

Пример: Приведенное объявление класса class C[T] { ... } , которое генерирует символ C. Тогда C.toType - это тип C[T], но C.toTypeConstructor - C.

Definition Classes
TypeSymbolApi

абстрактный def toTypeIn(site: Universe.Type): Universe.Type

Ссылка на тип, который ссылается на этот символ типа, рассматриваемый как член данного типа site.

Определяющие классы
TypeSymbolApi

абстрактный def typeParams: List[Universe.Symbol]

Для полиморфного типа — его параметры типа, пустой список для всех других типов.

Определяющие классы
TypeSymbolApi

абстрактный def typeSignature: Universe.Type

Определяющие классы
SymbolApi
См. также

info

абстрактный def typeSignatureIn(site: Universe.Type): Universe.Type

Определяющие классы
SymbolApi
См. также

infoIn

абстрактный def allOverriddenSymbols: List[Universe.Symbol]

Определяющие классы
SymbolApi
Аннотации
@deprecated
Устарело

(С версии 2.11.0) используйте overrides вместо этого

См. также

overrides

абстрактный def associatedFile: AbstractFile

Файл исходного кода, если этот символ был создан во время этой компиляции, или файл класса, если этот символ загружен из файла *.class или *.jar.

Возвращаемый тип — scala.reflect.io.AbstractFile, который относится к экспериментальной части Scala Reflection. Не следует использовать, если вы не знаете, что делаете. В последующих версиях этот API будет доработан и представлен как часть scala.reflect.api.

Определяющие классы
SymbolApi
Аннотации
@deprecated
Устарело

(С версии 2.11.0) используйте pos.source.file вместо этого

абстрактный def companionSymbol: Universe.Symbol

Для класса: модуль или фабрика case-класса с тем же именем в том же пакете. Для модуля: класс с тем же именем в том же пакете. Для всех остальных: NoSymbol.

Этот API может возвращать неожиданные результаты для модульных классов, пакетов и пакетов-классов. Используйте companion вместо этого, чтобы получить предсказуемые результаты.

Определяющие классы
SymbolApi
Аннотации
@deprecated
Устарело

(С версии 2.11.0) используйте companion вместо этого, но будьте внимательны к возможным изменениям поведения

абстрактный def isAbstractType: Boolean

Представляет ли этот символ определение абстрактного типа?

Определяющие классы
TypeSymbolApi
Аннотации
@deprecated
Устарело

(С версии 2.11.0) используйте isAbstract вместо этого

Члены-значения Concrete

final def !=(arg0: Any): Boolean

Определения классов
AnyRef → Any

final def ##(): Int

Определения классов
AnyRef → Any

def +(other: String): String

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

def ->[B](y: B): (Universe.FreeTypeSymbolApi, B)

Неявный
Этот член добавлен неявным преобразованием из Universe.FreeTypeSymbolApi вArrowAssoc[Universe.FreeTypeSymbolApi] при помощи метода ArrowAssoc в scala.Predef.
Определения классов
ArrowAssoc
Аннотации
@inline()

final def ==(arg0: Any): Boolean

Определения классов
AnyRef → Any

def asClass: Universe.ClassSymbol

Этот символ приведён к типу ClassSymbol, представляющему класс или тракт.

Определения классов
SymbolApi
Исключения

ScalaReflectionException если isClass равно false.

final def asInstanceOf[T0]: T0

Определения классов
Any

def asMethod: Universe.MethodSymbol

Этот символ приведён к типу MethodSymbol.

Определения классов
SymbolApi
Исключения

ScalaReflectionException если isMethod равно false.

def asModule: Universe.ModuleSymbol

Этот символ приведён к типу ModuleSymbol, определённому с помощью определения объекта.

Определения классов
SymbolApi
Исключения

ScalaReflectionException если isModule равно false.

def asTerm: Universe.TermSymbol

Этот символ приведён к типу TermSymbol.

Определения классов
SymbolApi
Исключения

ScalaReflectionException если isTerm равно false.

final def asType: Universe.TypeSymbol

Этот символ приведён к типу TypeSymbol.

Определения классов
TypeSymbolApi → SymbolApi
Исключения

ScalaReflectionException если isType равно false.

def clone(): AnyRef

Атрибуты
protected[java.lang]
Определения классов
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @native()

def ensuring(cond: (Universe.FreeTypeSymbolApi) => Boolean, msg: => Any): Universe.FreeTypeSymbolApi

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

def ensuring(cond: (Universe.FreeTypeSymbolApi) => Boolean): Universe.FreeTypeSymbolApi

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

def ensuring(cond: Boolean, msg: => Any): Universe.FreeTypeSymbolApi

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

def ensuring(cond: Boolean): Universe.FreeTypeSymbolApi

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

Неявный
Этот член добавлен с помощью неявного преобразования из Universe.FreeTypeSymbolApi вStringFormat[Universe.FreeTypeSymbolApi] с помощью метода StringFormat в scala.Predef.
Классы определений
StringFormat
Аннотации
@inline()

final def getClass(): Class[_ <: AnyRef]

Классы определений
AnyRef → Any
Аннотации
@native()

def hashCode(): Int

Классы определений
AnyRef → Any
Аннотации
@native()

def isClass: Boolean

Представляет ли этот символ определение класса или тракта? Если да, isType также гарантированно будет истинным.

Классы определений
SymbolApi

final def isInstanceOf[T0]: Boolean

Классы определений
Any

def isMethod: Boolean

Представляет ли этот символ определение метода? Если да, isTerm также гарантированно будет истинным.

Классы определений
SymbolApi

def isModule: Boolean

Представляет ли этот символ определение модуля (т.е. получено из определения объекта)? Если да, isTerm также гарантированно будет истинным.

Классы определений
SymbolApi

def isModuleClass: Boolean

Представляет ли этот символ определение класса, неявно связанного с определением объекта (класс модуля в терминологии компилятора Scala)? Если да, isType также гарантированно будет истинным.

Классы определений
SymbolApi

def isOverloadedMethod: Boolean

Используется для предоставления более информативного сообщения об ошибке для asMethod.

Атрибуты
protected
Определяющие классы
SymbolApi

def isTerm: Boolean

Представляет ли этот символ определение термина? Обратите внимание, что каждый символ является либо термином, либо типом. Таким образом, для каждого символа sym (за исключением NoSymbol) либо sym.isTerm истинно, либо sym.isType истинно.

Определяющие классы
SymbolApi

final def isType: Boolean

Представляет ли этот символ определение типа? Обратите внимание, что каждый символ является либо термином, либо типом. Таким образом, для каждого символа sym (за исключением NoSymbol) либо sym.isTerm истинно, либо sym.isType истинно.

Определяющие классы
TypeSymbolApi → SymbolApi

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/Internals$FreeTypeSymbolApi.html

Spec-Zone.ru

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