Use reflection to get the primary constructor definition of an instance.
Use reflection to get the primary constructor definition of an instance. Along with the constructor Mirror, this will also search the instance mirror for the appropriate members and their values used as arguments to the constructor.
type of instance to copy
instance to make copy from
class loader to use
a tuple where the first element is the Constructor Mirror, and the second element is a List of tuples containing the member names and their values
Find the class by name
Find the class by name
class name
class loader to use
class object
Create a ClassTag for a WeakTypeTag
Create a ClassTag for a WeakTypeTag
type T
ClassTag[T]
Copy any instance using reflection.
Copy any instance using reflection.
Note: all the implicit type values must be explicitly mentioned in the ctor.
So instead of implicitly passing the TypeTag: case class MyClass[T : TypeTag](t: T)
Explicitly pass TypeTag as a val: case class MyClass[T](t: T)(implicit val tt: TypeTag[T])
type T
instance of type T
class loader to use
a copy of t
RuntimeException
in case a ctor param value cannot be extracted
Return a TypeTag of typeTag[T].tpe.dealias (see TypeApi.dealias)
Return a TypeTag of typeTag[T].tpe.dealias (see TypeApi.dealias)
type T
runtime mirror
TypeTag[T]
TypeTag of typeTag[T].tpe.dealias
Fully dealiased type name for Type.
Fully dealiased type name for Type. This method performs a recursive dealising vs a regular type.dealias, which does on one level only.
E.g: given a type of "Map[String,Double]" the result is "scala.collection.immutable.Map[java.lang.String,scala.Double]"
type to dealias
fully dealised type name
Default class loader - Thread.currentThread().getContextClassLoader
Creates a Manifest[T] of a TypeTag[T]
Creates a Manifest[T] of a TypeTag[T]
type T with a TypeTag
Manifest[T]
Create a new of type T given it's class name
Create a new of type T given it's class name
type T
instance class
class loader to use
new instance of T
Create a new of type T given it's class name
Create a new of type T given it's class name
type T
instance class
new instance of T
Create a new instance of type T given a ctor args getter function
Create a new instance of type T given a ctor args getter function
instance class
ctor args getter function
class loader to use
new instance of T
Find setter methods for the provided method name
Find setter methods for the provided method name
type of instance to copy
class to find method for
name of method to find
optional number of arguments to match
class loader to use
reflected method to set type
Find setter methods for the provided method name
Find setter methods for the provided method name
type of instance to copy
class to find method for
name of method to find
argument values
optional number of arguments to match
class loader to use
reflected method to set type
Get a runtime mirror
Get a runtime mirror
class loader to use
runtime mirror
Create a TypeTag for Type
Create a TypeTag for Type
type T
type
runtime mirror
TypeTag[T]
Returns a Type Tag by Type name
Returns a Type Tag by Type name
type T
type name
runtime mirror
TypeTag[T]
Various Reflection helpers