scala 查看对象类型 check type

来源:互联网 发布:知乎南北战争 编辑:程序博客网 时间:2024/06/05 19:10

(Tested in Scala 2.8)scala> def manOf[T: Manifest](t: T): Manifest[T] = manifest[T]manOf: [T](t: T)(implicit evidence$1: Manifest[T])Manifest[T]scala> manOf(1)res0: Manifest[Int] = Intscala> manOf("")res1: Manifest[java.lang.String] = java.lang.Stringscala> val m = manOf(List(1))m: Manifest[List[Int]] = scala.collection.immutable.List[Int]scala> m.erasureres7: java.lang.Class[_] = class scala.collection.immutable.Listscala> m.typeArgumentsres9: List[scala.reflect.Manifest[_]] = List(Int)scala> val m2 = manOf(List(1, "string"))m2: Manifest[List[Any]] = scala.collection.immutable.List[Any]scala> m <:< m2res10: Boolean = true


scala> "123"res0: java.lang.String = 123scala> 123res1: Int = 123scala> 12.3res2: Double = 12.3scala> "123".getClass.getSimpleNameres3: java.lang.String = Stringscala> 123.asInstanceOf[AnyRef].getClass.getSimpleNameres5: java.lang.String = Integerscala> 12.3.asInstanceOf[AnyRef].getClass.getSimpleNameres6: java.lang.String = Double


参考: 点击打开链接http://www.scala-lang.org/old/node/6410



0 0
原创粉丝点击