Trait scala.reflect.api.Mirrors.RuntimeMirror
trait RuntimeMirror extends api.Mirror[Mirrors.this.type] with Universe.ReflectiveMirror
Abstract Value Members
abstract def EmptyPackage: Universe.ModuleSymbol
The module symbol of the default (unnamed) package
- Definition Classes
- Mirror
abstract def EmptyPackageClass: Universe.ClassSymbol
The module class symbol of the default (unnamed) package
- Definition Classes
- Mirror
abstract def RootClass: Universe.ClassSymbol
The class symbol of the _root_
package
- Definition Classes
- Mirror
abstract def RootPackage: Universe.ModuleSymbol
The module symbol of the _root_
package
- Definition Classes
- Mirror
abstract def classSymbol(rtcls: Universe.RuntimeClass): Universe.ClassSymbol
A class symbol for the specified runtime class.
- returns
The class symbol for the runtime class in the current class loader.
- Exceptions thrown
-
java.lang.ClassNotFoundException
if no class with that name existsscala.reflect.ScalaReflectionException
if no corresponding symbol exists to do: throws anything else?
abstract def moduleSymbol(rtcls: Universe.RuntimeClass): Universe.ModuleSymbol
A module symbol for the specified runtime class.
- returns
The module symbol for the runtime class in the current class loader.
- Exceptions thrown
-
java.lang.ClassNotFoundException
if no class with that name existsscala.reflect.ScalaReflectionException
if no corresponding symbol exists to do: throws anything else?
abstract def reflect[T](obj: T)(implicit arg0: ClassTag[T]): Universe.InstanceMirror
A reflective mirror for the given object.
Such a mirror can be used to further reflect against the members of the object to get/set fields, invoke methods and inspect inner classes and objects.
- Definition Classes
- ReflectiveMirror
abstract def reflectClass(cls: Universe.ClassSymbol): Universe.ClassMirror
Reflects against a static class symbol and returns a mirror that can be used to create instances of the class, inspect its companion object or perform further reflections.
To get a class symbol by the name of the class you would like to reflect, use <this mirror>.classSymbol(<runtime class loaded by its name>)
.
The input symbol can be either private or non-private (Scala reflection transparently deals with visibility). It must be static, i.e. either top-level or nested within one or several static objects.
- Definition Classes
- ReflectiveMirror
abstract def reflectModule(mod: Universe.ModuleSymbol): Universe.ModuleMirror
Reflects against a static module symbol and returns a mirror that can be used to get the instance of the object or inspect its companion class.
To get a module symbol by the name of its companion class you would like to reflect, use <this mirror>.classSymbol(<runtime class loaded by its name>).companion.get
.
The input symbol can be either private or non-private (Scala reflection transparently deals with visibility). It must be static, i.e. either top-level or nested within one or several static objects.
- Definition Classes
- ReflectiveMirror
abstract def runtimeClass(cls: Universe.ClassSymbol): Universe.RuntimeClass
Maps a Scala class symbol to the corresponding Java class object
- Exceptions thrown
ClassNotFoundException
if there is no Java class corresponding to the given Scala class symbol. Note: If the Scala symbol is ArrayClass, a ClassNotFound exception is thrown because there is no unique Java class corresponding to a Scala generic array
abstract def runtimeClass(tpe: Universe.Type): Universe.RuntimeClass
abstract def staticClass(fullName: String): Universe.ClassSymbol
The symbol corresponding to the globally accessible class with the given fully qualified name fullName
.
If the name points to a type alias, it's recursively dealiased and its target is returned. If you need a symbol that corresponds to the type alias itself, load it directly from the package class:
scala> cm.staticClass("scala.List") res0: scala.reflect.runtime.universe.ClassSymbol = class List
scala> res0.fullName res1: String = scala.collection.immutable.List
scala> cm.staticPackage("scala") res2: scala.reflect.runtime.universe.ModuleSymbol = package scala
scala> res2.moduleClass.info member TypeName("List") res3: scala.reflect.runtime.universe.Symbol = type List
scala> res3.fullName res4: String = scala.List
To be consistent with Scala name resolution rules, in case of ambiguity between a package and an object, the object is never been considered.
For example for the following code:
package foo { class B }
object foo { class A class B }
staticClass("foo.B") will resolve to the symbol corresponding to the class B declared in the package foo, and staticClass("foo.A") will throw a ScalaReflectionException.
In the example above, to load a symbol that corresponds to the class B declared in the object foo, use staticModule("foo") to load the module symbol and then navigate info.members of its moduleClass.
- Definition Classes
- Mirror
abstract def staticModule(fullName: String): Universe.ModuleSymbol
The symbol corresponding to the globally accessible object with the given fully qualified name fullName
.
To be consistent with Scala name resolution rules, in case of ambiguity between a package and an object, the object is never been considered.
For example for the following code:
package foo { object B }
object foo { object A object B }
staticModule("foo.B") will resolve to the symbol corresponding to the object B declared in the package foo, and staticModule("foo.A") will throw a ScalaReflectionException
In the example above, to load a symbol that corresponds to the object B declared in the object foo, use staticModule("foo") to load the module symbol and then navigate info.members of its moduleClass.
- Definition Classes
- Mirror
abstract def staticPackage(fullName: String): Universe.ModuleSymbol
The symbol corresponding to a package with the given fully qualified name fullName
.
- Definition Classes
- Mirror
abstract def symbolOf[T](implicit arg0: Universe.WeakTypeTag[T]): Universe.TypeSymbol
Type symbol of x
as derived from a type tag.
- Definition Classes
- Mirror
abstract val universe: Mirrors.this.type
The universe this mirror belongs to.
- Definition Classes
- Mirror
Concrete Value Members
final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
final def ##(): Int
- Definition Classes
- AnyRef → Any
def +(other: String): String
- Implicit
- This member is added by an implicit conversion from Universe.RuntimeMirror to any2stringadd[Universe.RuntimeMirror] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
def ->[B](y: B): (Universe.RuntimeMirror, B)
- Implicit
- This member is added by an implicit conversion from Universe.RuntimeMirror to ArrowAssoc[Universe.RuntimeMirror] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
final def asInstanceOf[T0]: T0
- Definition Classes
- Any
def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
def ensuring(cond: (Universe.RuntimeMirror) ⇒ Boolean, msg: ⇒ Any): Universe.RuntimeMirror
- Implicit
- This member is added by an implicit conversion from Universe.RuntimeMirror to Ensuring[Universe.RuntimeMirror] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: (Universe.RuntimeMirror) ⇒ Boolean): Universe.RuntimeMirror
- Implicit
- This member is added by an implicit conversion from Universe.RuntimeMirror to Ensuring[Universe.RuntimeMirror] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean, msg: ⇒ Any): Universe.RuntimeMirror
- Implicit
- This member is added by an implicit conversion from Universe.RuntimeMirror to Ensuring[Universe.RuntimeMirror] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean): Universe.RuntimeMirror
- Implicit
- This member is added by an implicit conversion from Universe.RuntimeMirror to Ensuring[Universe.RuntimeMirror] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
def equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Universe.RuntimeMirror to StringFormat[Universe.RuntimeMirror] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
final def getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
final def synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
def toString(): String
- Definition Classes
- AnyRef → Any
def typeOf[T](implicit arg0: Universe.TypeTag[T]): Universe.Type
Shortcut for implicitly[TypeTag[T]].tpe
- Definition Classes
- Mirror
final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
def weakTypeOf[T](implicit arg0: Universe.WeakTypeTag[T]): Universe.Type
Shortcut for implicitly[WeakTypeTag[T]].tpe
- Definition Classes
- Mirror
def →[B](y: B): (Universe.RuntimeMirror, B)
- Implicit
- This member is added by an implicit conversion from Universe.RuntimeMirror to ArrowAssoc[Universe.RuntimeMirror] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.12.9/scala-reflect/scala/reflect/api/Mirrors$RuntimeMirror.html
The API of a mirror for a reflective universe. See the overview page for details on how to use runtime reflection.