Spec-Zone.ru › Scala 2.13 Reflection

Аннотация scala.reflect.api.Symbols.MethodSymbol

абстрактный тип MethodSymbol >: Null <: Universe.MethodSymbolApi with Universe.TermSymbol

Тип символов методов, представляющих объявления def.

Источник
Symbols.scala
Линейные супертипы
Universe.<refinement>, Universe.<refinement>, Universe.MethodSymbolApi, Universe.TermSymbolApi, Universe.SymbolApi, AnyRef, Any

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

final тип NameType = Universe.TermName

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

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

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

abstract def accessed: Universe.Symbol

Вспомогательное поле для метода доступа, NoSymbol для всех остальных символов членов.

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

abstract def alternatives: List[Universe.Symbol]

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

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

abstract def annotations: List[Universe.Annotation]

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

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

abstract def companion: Universe.Symbol

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

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

abstract def exceptions: List[Universe.Symbol]

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

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

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

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

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

abstract def fullName: String

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

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

abstract def getter: Universe.Symbol

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

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

abstract def info: Universe.Type

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

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

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

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

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

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

abstract def isAbstract: Boolean

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

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

abstract def isAbstractOverride: Boolean

Отмечен ли этот символ как "abstract override"?

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

abstract def isAccessor: Boolean

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

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

abstract def isByNameParam: Boolean

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

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

abstract def isCaseAccessor: Boolean

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

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

Обозначает ли этот символ первичный конструктор своего окружающего класса?

Definition Classes
MethodSymbolApi

abstract def isPrivate: Boolean

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

Definition Classes
SymbolApi

abstract def isPrivateThis: Boolean

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

Definition Classes
SymbolApi

abstract def isProtected: Boolean

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

Definition Classes
SymbolApi

abstract def isProtectedThis: Boolean

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

Definition Classes
SymbolApi

abstract def isPublic: Boolean

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

Definition Classes
SymbolApi

abstract def isSetter: Boolean

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

Definition Classes
TermSymbolApi

abstract def isSpecialized: Boolean

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

Definition Classes
SymbolApi

abstract def isStable: Boolean

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

Definition Classes
TermSymbolApi

abstract def isStatic: Boolean

Является ли этот символ статическим (т.е. без внешнего экземпляра)? В: Когда именно сим обозначается как 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 isVal: Boolean

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

Definition Classes
TermSymbolApi

abstract def isVar: Boolean

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

Definition Classes
TermSymbolApi

abstract def isVarargs: Boolean

Поддерживает ли этот метод списки аргументов переменной длины?

Definition Classes
MethodSymbolApi

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

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

Definition Classes
SymbolApi

abstract def name: Symbol.NameType

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

Definition Classes
SymbolApi

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

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

Definition Classes
SymbolApi

abstract def overrides: Список[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: Список[Список[Universe.Symbol]]

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

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

Definition Classes
MethodSymbolApi

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

Тип возвращаемого значения метода.

Definition Classes
MethodSymbolApi

abstract def setter: Universe.Symbol

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

Definition Classes
TermSymbolApi

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

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

Definition Classes
SymbolApi

abstract def typeParams: Список[Universe.Symbol]

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

Definition Classes
MethodSymbolApi

abstract def typeSignature: Universe.Type

Definition Classes
SymbolApi
See also

info

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

Definition Classes
SymbolApi
See also

infoIn

абстрактный def allOverriddenSymbols: Список[СимволUniverse]

Определения классов
SymbolApi
Аннотации
@устаревшее
Устаревшее

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

См. также

overrides

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

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

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

Определения классов
SymbolApi
Аннотации
@устаревшее
Устаревшее

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

абстрактный def companionSymbol: СимволUniverse

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

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

Определения классов
SymbolApi
Аннотации
@устаревшее
Устаревшее

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

абстрактный def paramss: Список[Список[СимволUniverse]]

Определения классов
MethodSymbolApi
Аннотации
@устаревшее
Устаревшее

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

См. также

paramLists Имя, заканчивающееся на "ss", указывает, что возвращаемый тип — список списков.

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

final def !=(arg0: Any): Boolean

Definition Classes
AnyRef → Any

final def ##(): Int

Definition Classes
AnyRef → Any

final def ==(arg0: Any): Boolean

Definition Classes
AnyRef → Any

def asClass: Universe.ClassSymbol

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

Definition Classes
SymbolApi
Исключения

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

final def asInstanceOf[T0]: T0

Definition Classes
Any

final def asMethod: Universe.MethodSymbol

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

Definition Classes
MethodSymbolApi → SymbolApi
Исключения

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

def asModule: Universe.ModuleSymbol

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

Definition Classes
SymbolApi
Исключения

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

final def asTerm: Universe.TermSymbol

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

Definition Classes
TermSymbolApi → SymbolApi
Исключения

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

def asType: Universe.TypeSymbol

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

Definition Classes
SymbolApi
Исключения

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

def clone(): AnyRef

Атрибуты
protected[java.lang]
Definition Classes
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @native()

final def eq(arg0: AnyRef): Boolean

Definition Classes
AnyRef

def equals(arg0: AnyRef): Boolean

Definition Classes
AnyRef → Any

def finalize(): Unit

Атрибуты
protected[java.lang]
Definition Classes
AnyRef
Аннотации
@throws(classOf[java.lang.Throwable])

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

Definition Classes
AnyRef → Any
Аннотации
@native()

def hashCode(): Int

Definition Classes
AnyRef → Any
Аннотации
@native()

def isClass: Boolean

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

Definition Classes
SymbolApi

final def isInstanceOf[T0]: Boolean

Definition Classes
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$MethodSymbol.html

Spec-Zone.ru

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