Аннотация scala.reflect.api.Symbols.MethodSymbol
абстрактный тип MethodSymbol >: Null <: Universe.MethodSymbolApi with Universe.TermSymbol
Типовые члены
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
abstract def typeSignatureIn(site: Universe.Type): Universe.Type
абстрактный def allOverriddenSymbols: Список[СимволUniverse]
абстрактный 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
Тип символов методов, представляющих объявления def.