@nowarn ("cat=deprecation&origin;=scala\\.reflect\\.ClassManifestDeprecatedApis") @implicitNotFound (msg = "No ClassTag 可用於 ${T}")
用法 一
trait ClassTag[T] extends ClassManifestDeprecatedApis[T] with Equals with Serializable
ClassTag[T]
存儲給定類型的已擦除類 T
,可通過 runtimeClass
字段訪問.這對於實例化編譯時元素類型未知的 Array
特別有用。
ClassTag
s 是一個較弱的特例scala.reflect.api.TypeTags.TypeTags,因為它們隻包裝給定類型的運行時類,而TypeTag
包含所有靜態類型信息。那是,ClassTag
s 是由隻知道一個類型的頂級類構成的,而不必知道它的所有參數類型。這個運行時信息對於運行時來說已經足夠了Array
創建。
例如:
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)
參看scala.reflect.api.TypeTags更多示例,或反射指南:TypeTags更多細節。
伴生:
- object
源碼:
- ClassTag.scala
相關用法
- Scala reflect.Manifest用法及代碼示例
- Scala reflectModule.ParamClause用法及代碼示例
- Scala reflectModule.ByNameType用法及代碼示例
- Scala reflectModule.TreeMap用法及代碼示例
- Scala reflectModule.TreeAccumulator用法及代碼示例
- Scala reflectModule.Lambda用法及代碼示例
- Scala reflectModule.PackageClause用法及代碼示例
- Scala reflectModule.TreeTraverser用法及代碼示例
- Scala reduce()用法及代碼示例
- Scala Tabulate.sliding用法及代碼示例
- Scala ArrayBuffer.inits用法及代碼示例
- Scala long.BitwiseOr用法及代碼示例
- Scala StringBuilder.partitionMap用法及代碼示例
- Scala List distinct()用法及代碼示例
- Scala DefaultMap.sizeIs用法及代碼示例
- Scala StrictOptimizedIterableOps.sliding用法及代碼示例
- Scala Searching.SearchResult用法及代碼示例
- Scala ::.collectFirst用法及代碼示例
- Scala TreeSet diff()用法及代碼示例
- Scala Char getClass()用法及代碼示例
- Scala int.Min用法及代碼示例
- Scala IntMap.groupMap用法及代碼示例
- Scala Map3.mkString用法及代碼示例
- Scala IterableOnceOps.flatMap用法及代碼示例
- Scala IndexedSeqOps.lengthIs用法及代碼示例
注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 reflect.ClassTag。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。