Test two objects for inequality.
Test two objects for inequality.
true
if !(this == that), false otherwise.
Equivalent to x.hashCode
except for boxed numeric types and null
.
Equivalent to x.hashCode
except for boxed numeric types and null
.
For numerics, it returns a hash value which is consistent
with value equality: if two value type instances compare
as true, then ## will produce the same hash value for each
of them.
For null
returns a hashcode where null.hashCode
throws a
NullPointerException
.
a hash value consistent with ==
Test two objects for equality.
Test two objects for equality.
The expression x == that
is equivalent to if (x eq null) that eq null else x.equals(that)
.
true
if the receiver object is equivalent to the argument; false
otherwise.
.
Cast the receiver object to be of type T0
.
Cast the receiver object to be of type T0
.
Note that the success of a cast at runtime is modulo Scala's erasure semantics.
Therefore the expression 1.asInstanceOf[String]
will throw a ClassCastException
at
runtime, while the expression List(1).asInstanceOf[List[String]]
will not.
In the latter example, because the type argument is erased as part of compilation it is
not possible to check whether the contents of the list are of the requested type.
the receiver object.
if the receiver object is not an instance of the erasure of type T0
.
A class symbol for the specified runtime class.
A class symbol for the specified runtime class.
The class symbol for the runtime class in the current class loader.
if no class with that name exists
scala.reflect.internal.MissingRequirementErrorif no corresponding symbol exists to do: throws anything else?
The Java class corresponding to given Scala class.
The Java class corresponding to given Scala class. Note: This only works for
ClassNotFoundException
for all Scala classes not in one of these categories.
The Scala class that corresponds to a given Java class.
The Scala class that corresponds to a given Java class.
The Java class
A Scala class symbol that reflects all elements of the Java class, in the form they appear in the Scala pickling info, or, if that is not available, wrapped from the Java reflection info.
Create a copy of the receiver object.
Create a copy of the receiver object.
The default implementation of the clone
method is platform dependent.
a copy of the receiver object.
not specified by SLS as a member of AnyRef
The Java constructor corresponding to a given Scala constructor.
The Java constructor corresponding to a given Scala constructor.
The Scala constructor
The Scala constructor corresponding to given Java constructor.
The Scala constructor corresponding to given Java constructor.
The Java constructor
A Scala method object that corresponds to jconstr
.
Tests whether the argument (arg0
) is a reference to the receiver object (this
).
Tests whether the argument (arg0
) is a reference to the receiver object (this
).
The eq
method implements an equivalence relation on
non-null instances of AnyRef
, and has three additional properties:
x
and y
of type AnyRef
, multiple invocations of
x.eq(y)
consistently returns true
or consistently returns false
.x
of type AnyRef
, x.eq(null)
and null.eq(x)
returns false
.null.eq(null)
returns true
. When overriding the equals
or hashCode
methods, it is important to ensure that their behavior is
consistent with reference equality. Therefore, if two objects are references to each other (o1 eq o2
), they
should be equal to each other (o1 == o2
) and they should hash to the same value (o1.hashCode == o2.hashCode
).
true
if the argument is a reference to the receiver object; false
otherwise.
The equality method for reference types.
********************** helpers ***********************
********************** helpers ***********************
The Java field corresponding to a given Scala field.
The Scala field corresponding to given Java field.
The Scala field corresponding to given Java field.
The Java field
A Scala field object that corresponds to jfield
.
// ??? should we return the getter instead?
Called by the garbage collector on the receiver object when there are no more references to the object.
Called by the garbage collector on the receiver object when there are no more references to the object.
The details of when and if the finalize
method is invoked, as
well as the interaction between finalize
and non-local returns
and exceptions, are all platform dependent.
not specified by SLS as a member of AnyRef
Returns string formatted according to given format
string.
Returns string formatted according to given format
string.
Format strings are as for String.format
(@see java.lang.String.format).
The Scala symbol that corresponds to a given Java generic declaration (class, method, or constructor)
A representation that corresponds to the dynamic class of the receiver object.
A representation that corresponds to the dynamic class of the receiver object.
The nature of the representation is platform dependent.
a representation that corresponds to the dynamic class of the receiver object.
not specified by SLS as a member of AnyRef
The hashCode method for reference types.
getModule2/getClass2 aren't needed at present but may be again, so for now they're mothballed.
getModule2/getClass2 aren't needed at present but may be again, so for now they're mothballed.
Test whether the dynamic type of the receiver object is T0
.
Test whether the dynamic type of the receiver object is T0
.
Note that the result of the test is modulo Scala's erasure semantics.
Therefore the expression 1.isInstanceOf[String]
will return false
, while the
expression List(1).isInstanceOf[List[String]]
will return true
.
In the latter example, because the type argument is erased as part of compilation it is
not possible to check whether the contents of the list are of the specified type.
true
if the receiver object is an instance of erasure of type T0
; false
otherwise.
The Java method corresponding to a given Scala method.
The Java method corresponding to a given Scala method.
The Scala method
The Scala method corresponding to given Java method.
The Scala method corresponding to given Java method.
The Java method
A Scala method object that corresponds to jmeth
.
The mirror that corresponds to the classloader that original defined the given Java class
A module symbol for the specified runtime class.
A module symbol for the specified runtime class.
The module symbol for the runtime class in the current class loader.
if no class with that name exists
scala.reflect.internal.MissingRequirementErrorif no corresponding symbol exists to do: throws anything else?
Equivalent to !(this eq that)
.
Equivalent to !(this eq that)
.
true
if the argument is not a reference to the receiver object; false
otherwise.
Wakes up a single thread that is waiting on the receiver object's monitor.
Wakes up a single thread that is waiting on the receiver object's monitor.
not specified by SLS as a member of AnyRef
Wakes up all threads that are waiting on the receiver object's monitor.
Wakes up all threads that are waiting on the receiver object's monitor.
not specified by SLS as a member of AnyRef
The Scala package with given fully qualified name.
Optionally, the Java package corresponding to a given Scala package, or None if no such Java package exists.
Optionally, the Java package corresponding to a given Scala package, or None if no such Java package exists.
The Scala package
The Scala package corresponding to given Java package
A reflective mirror for the given object.
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.
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.
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.
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.
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.
The lazy type for root.
The lazy type for root.
Maps a Scala class symbol to the corresponding Java class object
Maps a Scala class symbol to the corresponding Java class object
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
Maps a Scala type to the corresponding Java class object
Maps a Scala type to the corresponding Java class object
The symbol corresponding to the globally accessible class with the
given fully qualified name fullName
.
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: reflect.runtime.universe.ClassSymbol = class List
scala> res0.fullName res1: String = scala.collection.immutable.List
scala> cm.staticPackage("scala") res2: reflect.runtime.universe.ModuleSymbol = package scala
scala> res2.moduleClass.typeSignature member newTypeName("List") res3: 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 MissingRequirementException (which is exactly what scalac would do if this fully qualified class name is written inside any package in a Scala program).
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 typeSignature.members of its moduleClass.
Unlike getClassByName/getRequiredClass this function can also load packageless symbols. Compiler might ignore them, but they should be loadable with macros.
The symbol corresponding to the globally accessible object with the
given fully qualified name fullName
.
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 MissingRequirementException (which is exactly what scalac would do if this fully qualified class name is written inside any package in a Scala program).
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 typeSignature.members of its moduleClass.
Unlike getModule/getRequiredModule this function can also load packageless symbols. Compiler might ignore them, but they should be loadable with macros.
The symbol corresponding to a package with the
given fully qualified name fullName
.
The symbol corresponding to a package with the
given fully qualified name fullName
.
Creates a String representation of this object.
Creates a String representation of this object. The default representation is platform dependent. On the java platform it is the concatenation of the class name, "@", and the object's hashcode in hexadecimal.
a String representation of the object.
Does path
correspond to a Java class with that fully qualified name in the current class loader?
The Scala type parameter that corresponds to a given Java type parameter.
The Scala type parameter that corresponds to a given Java type parameter.
The Java type parameter
A Scala type parameter symbol that has the same owner and name as the Java type parameter
The Java class that corresponds to given Scala type.
The Java class that corresponds to given Scala type. Pre: Scala type is already transformed to Java level.
The Scala type that corresponds to given Java type
.
..
how connected???? Generate types for top-level Scala root class and root companion object from the pickled information stored in a corresponding Java class
how connected???? Generate types for top-level Scala root class and root companion object from the pickled information stored in a corresponding Java class
The top-level Scala class for which info is unpickled
The top-level Scala companion object for which info is unpickled
The Java class which contains the unpickled information in a ScalaSignature or ScalaLongSignature annotation.
(javaMirror: StringAdd).self
(javaMirror: StringFormat).self
(Since version 2.10.0) Use getClassByName
(Since version 2.10.0) Use getModuleByName
(javaMirror: ArrowAssoc[SymbolTable.JavaMirror]).x
(Since version 2.10.0) Use leftOfArrow
instead
(javaMirror: Ensuring[SymbolTable.JavaMirror]).x
(Since version 2.10.0) Use resultOfEnsuring
instead
The API of a mirror for a reflective universe