A ClassTag[T]
stores the erased class of a given type T
, accessible via the runtimeClass
field. This is particularly useful for instantiating Array
s whose element types are unknown at compile time.
ClassTag
s are a weaker special case of scala.reflect.api.TypeTags.TypeTags, in that they wrap only the runtime class of a given type, whereas a TypeTag
contains all static type information. That is, ClassTag
s are constructed from knowing only the top-level class of a type, without necessarily knowing all of its argument types. This runtime information is enough for runtime Array
creation.
For example:
scala> def mkArray[T : ClassTag](elems: T*) = Array[T](elems: _*)
mkArray: [T](elems: T*)(implicit evidence$1: scala.reflect.ClassTag[T])Array[T]
scala> mkArray(42, 13)
res0: Array[Int] = Array(42, 13)
scala> mkArray("Japan","Brazil","Germany")
res1: Array[String] = Array(Japan, Brazil, Germany)
See scala.reflect.api.TypeTags for more examples, or the Reflection Guide: TypeTags for more details.
Attributes
- Companion
- object
- Source
- ClassTag.scala
- Graph
-
- Supertypes
-
trait Equalstrait ClassManifestDeprecatedApis[T]trait OptManifest[T]trait Serializableclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
trait Manifest[T]class AnyValManifest[T]
Members list
Value members
Abstract methods
A class representing the type U
to which T
would be erased.
A class representing the type U
to which T
would be erased. Note that there is no subtyping relationship between T
and U
.
Attributes
- Source
- ClassTag.scala
Concrete methods
A method that should be called from every well-designed equals method that is open to be overridden in a subclass.
A method that should be called from every well-designed equals method that is open to be overridden in a subclass. See Programming in Scala, Chapter 28 for discussion and design.
Value parameters
- that
-
the value being probed for possible equality
Attributes
- Returns
-
true if this instance can possibly equal
that
, otherwise false - Definition Classes
- Source
- ClassTag.scala
The universal equality method defined in AnyRef
.
The universal equality method defined in AnyRef
.
Attributes
- Definition Classes
- Source
- ClassTag.scala
Calculate a hash code value for the object.
Calculate a hash code value for the object.
The default hashing algorithm is platform dependent.
Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)
) yet not be equal (o1.equals(o2)
returns false
). A degenerate implementation could always return 0
. However, it is required that if two objects are equal (o1.equals(o2)
returns true
) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)
). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals
method.
Attributes
- Returns
-
the hash code value for this object.
- Definition Classes
- Source
- ClassTag.scala
Produces a new array with element type T
and length len
Returns a string representation of the object.
Returns a string representation of the object.
The default representation is platform dependent.
Attributes
- Returns
-
a string representation of the object.
- Definition Classes
- Source
- ClassTag.scala
A ClassTag[T] can serve as an extractor that matches only objects of type T.
A ClassTag[T] can serve as an extractor that matches only objects of type T.
The compiler tries to turn unchecked type tests in pattern matches into checked ones by wrapping a (_: T)
type pattern as ct(_: T)
, where ct
is the ClassTag[T]
instance. Type tests necessary before calling other extractors are treated similarly. SomeExtractor(...)
is turned into ct(SomeExtractor(...))
if T
in SomeExtractor.unapply(x: T)
is uncheckable, but we have an instance of ClassTag[T]
.
Attributes
- Source
- ClassTag.scala
Produces a ClassTag
that knows how to instantiate an Array[Array[T]]
Produces a ClassTag
that knows how to instantiate an Array[Array[T]]
Attributes
- Source
- ClassTag.scala
Inherited methods
Attributes
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Attributes
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Deprecated and Inherited methods
Tests whether the type represented by this manifest is a subtype of the type represented by that
manifest, subject to the limitations described in the header.
Tests whether the type represented by this manifest is a subtype of the type represented by that
manifest, subject to the limitations described in the header.
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Tests whether the type represented by this manifest is a supertype of the type represented by that
manifest, subject to the limitations described in the header.
Tests whether the type represented by this manifest is a supertype of the type represented by that
manifest, subject to the limitations described in the header.
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala
Attributes
- Deprecated
- true
- Inherited from:
- ClassManifestDeprecatedApis
- Source
- ClassManifestDeprecatedApis.scala