Spec-Zone.ru › Scala 2.13 Reflection

Интерфейс scala.reflect.api.Symbols.MethodSymbolApi

трайт MethodSymbolApi extends Universe.TermSymbolApi

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

Класс Symbol определяет isXXX тестовые методы, такие как isPublic или isFinal, params и returnType методы для символов методов, baseClasses для символов классов и так далее. Некоторые из этих методов не имеют смысла для определенных подклассов Symbol и возвращают NoSymbol, Nil или другие пустые значения.

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

Члены-типы

final тип NameType = Universe.TermName

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

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

Члены-значения абстрактного типа

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

Поддерживающее поле для метода-акцессора, NoSymbol для всех других символов терминов.

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

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

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

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

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

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

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

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

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

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

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

Исключения, которые, как известно, могут быть выброшены этим методом. Для методов Scala список вычисляется из аннотаций throws, присутствующих в методе. Для методов Java список вычисляется из throws-клаузул, прикреплённых к методу и сохранённых в байт-коде.

абстрактный def filter(cond: (Universe.Symbol) => Boolean): Universe.Symbol

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

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

абстрактный def fullName: String

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

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

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

Метод-аксессор для поддерживающего поля val или val, NoSymbol для всех других символов терминов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Представляет ли этот символ метод-аксессор (getter или setter)?

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

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

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

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

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

Представляет ли этот символ поле класса-случая, соответствующее параметру в первом списке параметров первичного конструктора этого класса?

Definition Classes
TermSymbolApi

abstract def isConstructor: Boolean

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

Если owner является классом, то это стандартный конструктор JVM. Если owner является трайтом, то это конструктор миксина.

Definition Classes
SymbolApi

abstract def isFinal: Boolean

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

Definition Classes
SymbolApi

abstract def isGetter: Boolean

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

Definition Classes
TermSymbolApi

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 isLazy: Boolean

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

Definition Classes
TermSymbolApi

abstract def isMacro: Boolean

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

Definition Classes
SymbolApi

abstract def isOverloaded: Boolean

Представляет ли этот символ перегруженный метод? Если да, то isMethod ложно, и список вложенных альтернатив можно найти через alternatives.

Definition Classes
TermSymbolApi

abstract def isPackage: Boolean

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

Definition Classes
SymbolApi

abstract def isPackageClass: Boolean

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

Definition Classes
SymbolApi

abstract def isParamAccessor: Boolean

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

Definition Classes
TermSymbolApi

abstract def isParamWithDefault: Boolean

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

Definition Classes
TermSymbolApi

abstract def isParameter: Boolean

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

Definition Classes
SymbolApi

abstract def isPrimaryConstructor: Boolean

abstract def isPrivate: Boolean

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обозначает ли этот символ стабильное значение?

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

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

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

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

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

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

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

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

Введен ли этот символ как val?

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

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

Введен ли этот символ как var?

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

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

абстрактный def map(f: (Universe.Symbol) => Universe.Symbol): Universe.Symbol

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

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

абстрактный def name: MethodSymbol.NameType

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

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

абстрактный def orElse(alt: => Universe.Symbol): Universe.Symbol

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

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

абстрактный 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 paramLists: List[List[Universe.Symbol]]

Все списки параметров метода.

Может использоваться для различения нульарных методов и методов с пустыми списками параметров. Для нульарного метода возвращает пустой список (т.е. List()). Для метода с пустым списком параметров возвращает список, содержащий пустой список (т.е. List(List())).

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 returnType: Universe.Type

abstract def setter: Universe.Symbol

Метод-сеттер для вспомогательного поля val или val, NoSymbol для всех других термических символов.

Definition Classes
TermSymbolApi

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

Делает то же самое, что и filter, но аварийно завершается, если совпадений несколько.

Definition Classes
SymbolApi

abstract def typeParams: List[Universe.Symbol]

abstract def typeSignature: Universe.Type

Definition Classes
SymbolApi
См. также

info

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

Definition Classes
SymbolApi
См. также

infoIn

abstract def allOverriddenSymbols: List[Universe.Symbol]

Definition Classes
SymbolApi
Аннотации
@deprecated
Устаревшее

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

См. также

overrides

abstract def associatedFile: AbstractFile

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

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

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

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

abstract def companionSymbol: Universe.Symbol

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

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

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

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

abstract def paramss: List[List[Universe.Symbol]]

Аннотации
@deprecated
Устаревший

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

См. также

paramLists Название, заканчивающееся на «ss», указывает, что тип результата — список списков.

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

final def !=(arg0: Any): Boolean

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

final def ##(): Int

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

def +(other: String): String

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

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

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

final def ==(arg0: Any): Boolean

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

def asClass: Universe.ClassSymbol

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

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

ScalaReflectionException если isClass ложно.

final def asInstanceOf[T0]: T0

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

final def asMethod: Universe.MethodSymbol

Этот символ преобразован в MethodSymbol.

Определяющие классы
MethodSymbolApi → SymbolApi
Исключения

ScalaReflectionException если isMethod ложно.

def asModule: Universe.ModuleSymbol

Этот символ преобразован в ModuleSymbol, определённый в объекте.

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

ScalaReflectionException если isModule ложно.

final def asTerm: Universe.TermSymbol

Этот символ преобразован в TermSymbol.

Определяющие классы
TermSymbolApi → SymbolApi
Исключения

ScalaReflectionException если isTerm ложно.

def asType: Universe.TypeSymbol

Этот символ преобразован в TypeSymbol.

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

ScalaReflectionException если isType ложно.

def clone(): AnyRef

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

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

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

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

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

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

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

def ensuring(cond: Boolean): Universe.MethodSymbolApi

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

final def isMethod: Boolean

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

Определения классов
MethodSymbolApi → SymbolApi

def isModule: Boolean

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

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

def isModuleClass: Boolean

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

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

def isOverloadedMethod: Boolean

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

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

final def isTerm: Boolean

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

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

def isType: Boolean

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

Определяющие классы
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/Symbols$MethodSymbolApi.html

Spec-Zone.ru

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