Интерфейс scala.reflect.api.Symbols.ModuleSymbolApi
трайт ModuleSymbolApi extends Universe.TermSymbolApi
Члены типа
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 filter(cond: (Universe.Symbol) => Boolean): Universe.Symbol
Фильтрует основополагающие альтернативы (или список с одним элементом, состоящий из самого символа, если символ не перегружен). Возвращает перегруженный символ, если есть несколько совпадений. Возвращает NoSymbol, если совпадений нет.
- Определяющие классы
- SymbolApi
abstract def fullName: String
Кодированное полное имя пути этого символа, где внешние имена и внутренние имена разделяются точками.
- Определяющие классы
- SymbolApi
abstract def getter: Universe.Symbol
Метод-получатель для базового поля val или val, 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
Отмечен ли этот символ как "абстрактный переопределяющий"?
- Определяющие классы
- SymbolApi
abstract def isAccessor: Boolean
Представляет ли этот символ метод-получатель или метод-установщик?
- Определяющие классы
- TermSymbolApi
abstract def isByNameParam: Boolean
Представляет ли этот символ параметр по имени?
- Определяющие классы
- TermSymbolApi
abstract def isCaseAccessor: Boolean
Представляет ли этот символ поле класса case, которое соответствует параметру в первом списке параметров первичного конструктора этого класса?
- Определяющие классы
- TermSymbolApi
abstract def isConstructor: Boolean
Представляет ли этот метод конструктор?
Если owner — класс, то это конструктор JVM по умолчанию. Если owner — трайт, то это конструктор миксина.
- Определяющие классы
- SymbolApi
абстрактный def isFinal: Boolean
Является ли этот символ конечным?
- Определяющие классы
- SymbolApi
абстрактный def isGetter: Boolean
Представляет ли этот символ геттер поля? Если да, то isMethod также гарантированно будет истинным.
- Определяющие классы
- TermSymbolApi
абстрактный def isImplementationArtifact: Boolean
Представляет ли этот символ артефакт реализации, не предназначенный для публичного использования? Примерами таких артефактов являются мосты стирания и внешние поля.
- Определяющие классы
- SymbolApi
абстрактный def isImplicit: Boolean
Представляет ли этот символ неявное значение, определение, класс или параметр?
- Определяющие классы
- SymbolApi
абстрактный def isJava: Boolean
Определен ли этот символ на Java?
- Определяющие классы
- SymbolApi
абстрактный def isJavaAnnotation: Boolean
Представляет ли этот символ интерфейс аннотации Java?
- Определяющие классы
- SymbolApi
абстрактный def isJavaEnum: Boolean
Представляет ли этот символ класс перечисления Java или значение перечисления Java?
- Определяющие классы
- SymbolApi
абстрактный def isLazy: Boolean
Представляет ли этот символ ленивую переменную?
- Определяющие классы
- TermSymbolApi
абстрактный def isMacro: Boolean
Является ли этот символ макросом?
- Определяющие классы
- SymbolApi
абстрактный def isOverloaded: Boolean
Представляет ли этот символ перегруженный метод? Если да, то isMethod ложно, а список вложенных альтернатив можно найти с помощью alternatives.
- Определяющие классы
- TermSymbolApi
абстрактный def isPackage: Boolean
Представляет ли этот символ определение пакета? Известные проблемы: https://github.com/scala/bug/issues/6732.
- Определяющие классы
- SymbolApi
абстрактный def isPackageClass: Boolean
Представляет ли этот символ класс пакета? Если да, то isClass также гарантированно будет истинным.
- Определяющие классы
- SymbolApi
абстрактный def isParamAccessor: Boolean
Представляет ли этот символ поле класса, сгенерированное из параметра этого класса?
- Определяющие классы
- TermSymbolApi
абстрактный def isParamWithDefault: Boolean
Представляет ли этот символ параметр со значением по умолчанию?
- Определяющие классы
- TermSymbolApi
абстрактный def isParameter: Boolean
Является ли этот символ параметром (параметром метода или параметром типа)?
- Определяющие классы
- SymbolApi
абстрактный def isPrivate: Boolean
Представляет ли этот символ частное объявление или определение? Если да, то privateWithin может рассказать больше о области видимости этого символа.
- Определяющие классы
- SymbolApi
абстрактный 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 isSetter: Boolean
Представляет ли этот символ установщик поля? Если да, то isMethod также гарантированно будет истинным.
- 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 map(f: (Universe.Symbol) => Universe.Symbol): Universe.Symbol
Если это NoSymbol, возвращает NoSymbol, иначе возвращает результат применения f к этому символу.
- Definition Classes
- SymbolApi
abstract def moduleClass: Universe.Symbol
Класс, неявно связанный с определением объекта. Можно вернуться от класса модуля к связанному символу модуля, просмотрев его selfType.termSymbol.
abstract def name: ModuleSymbol.NameType
Имя символа как члена типа Name.
- Definition Classes
- SymbolApi
abstract def orElse(alt: => Universe.Symbol): Universe.Symbol
Предоставляет альтернативу, если символ является NoSymbol.
- Definition Classes
- SymbolApi
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 setter: Universe.Symbol
Метод-сеттер для вспомогательного поля val или var, NoSymbol для всех остальных терм-символов.
- Definition Classes
- TermSymbolApi
abstract def suchThat(cond: (Universe.Symbol) => Boolean): Universe.Symbol
Выполняет то же, что и filter, но аварийно завершается, если совпадений несколько.
- Definition Classes
- SymbolApi
abstract def typeSignature: Universe.Type
abstract def typeSignatureIn(site: Universe.Type): Universe.Type
abstract def allOverriddenSymbols: List[Universe.Symbol]
abstract def associatedFile: AbstractFile
Файл исходного кода, если этот символ создан во время этой компиляции, или файл класса, если этот символ загружен из файла *.class или *.jar.
Возвращаемый тип — scala.reflect.io.AbstractFile, который принадлежит экспериментальной части Scala Reflection. Не следует использовать, если вы не знаете, что делаете. В последующих выпусках этот API будет доработан и представлен как часть scala.reflect.api.
- Definition Classes
- SymbolApi
- Аннотации
- @deprecated
- Устаревший
(С версии 2.11.0) используйте
pos.source.fileвместо
abstract def companionSymbol: Universe.Symbol
Для класса: модуль или фабрика case class с тем же именем в том же пакете. Для модуля: класс с тем же именем в том же пакете. Для всех остальных: NoSymbol.
Этот API может возвращать неожиданные результаты для модульных классов, пакетов и пакетированных классов. Используйте companion вместо, чтобы получить предсказуемые результаты.
- Definition Classes
- SymbolApi
- Аннотации
- @deprecated
- Устаревший
(С версии 2.11.0) используйте
companionвместо, но будьте внимательны к возможным изменениям в поведении
Члены-значения конкретного типа
final def !=(arg0: Any): Boolean
- Определяющие классы
- AnyRef → Any
final def ##(): Int
- Определяющие классы
- AnyRef → Any
def +(other: String): String
- Неявный
- Этот член добавлен с помощью неявного преобразования из Universe.ModuleSymbolApi вany2stringadd[Universe.ModuleSymbolApi] с помощью метода any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
def ->[B](y: B): (Universe.ModuleSymbolApi, B)
- Неявный
- Этот член добавлен с помощью неявного преобразования из Universe.ModuleSymbolApi вArrowAssoc[Universe.ModuleSymbolApi] с помощью метода 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.
final def asModule: Universe.ModuleSymbol
Этот символ преобразован в ModuleSymbol, определённый объектным определением.
- Определяющие классы
- ModuleSymbolApi → SymbolApi
- Исключения
ScalaReflectionException, еслиisModuleравно false.
final def asTerm: Universe.TermSymbol
Этот символ преобразован в TermSymbol.
- Определяющие классы
- TermSymbolApi → SymbolApi
- Исключения
ScalaReflectionException, еслиisTermравно false.
def asType: Universe.TypeSymbol
Этот символ преобразован в TypeSymbol.
- Определяющие классы
- SymbolApi
- Исключения
ScalaReflectionException, еслиisTypeравно false.
def clone(): AnyRef
- Атрибуты
- protected[java.lang]
- Определяющие классы
- AnyRef
- Аннотации
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
def ensuring(cond: (Universe.ModuleSymbolApi) => Boolean, msg: => Any): Universe.ModuleSymbolApi
- Неявный
- Этот член добавлен с помощью неявного преобразования из Universe.ModuleSymbolApi вEnsuring[Universe.ModuleSymbolApi] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (Universe.ModuleSymbolApi) => Boolean): Universe.ModuleSymbolApi
- Неявный
- Этот член добавляется неявным преобразованием из Universe.ModuleSymbolApi в Ensuring[Universe.ModuleSymbolApi], выполняемым методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: => Any): Universe.ModuleSymbolApi
- Неявный
- Этот член добавляется неявным преобразованием из Universe.ModuleSymbolApi в Ensuring[Universe.ModuleSymbolApi], выполняемым методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): Universe.ModuleSymbolApi
- Неявный
- Этот член добавляется неявным преобразованием из Universe.ModuleSymbolApi в Ensuring[Universe.ModuleSymbolApi], выполняемым методом 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.ModuleSymbolApi в StringFormat[Universe.ModuleSymbolApi], выполняемым методом 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
final def isModule: Boolean
Представляет ли этот символ определение модуля (т.е. он получен из определения объекта)? Если да, то isTerm также гарантированно будет истинным.
- Определяющие классы
- ModuleSymbolApi → 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$ModuleSymbolApi.html
API символов модулей. Основным источником информации о символах является страница Symbols.
Класс Symbol определяет
isXXXтестовые методы, такие какisPublicилиisFinal,paramsиreturnTypeметоды для символов методов,baseClassesдля символов классов и так далее. Некоторые из этих методов не имеют смысла для определённых подклассовSymbolи возвращаютNoSymbol,Nilили другие пустые значения.