当前位置: 首页 > 工具软件 > Scala Check > 使用案例 >

scala 查看对象类型 check type

羿昊英
2023-12-01
  1. (Tested in Scala 2.8)  
  2. scala> def manOf[T: Manifest](t: T): Manifest[T] = manifest[T]  
  3. manOf: [T](t: T)(implicit evidence$1: Manifest[T])Manifest[T]  
  4. scala> manOf(1)  
  5. res0: Manifest[Int] = Int  
  6. scala> manOf("")  
  7. res1: Manifest[java.lang.String] = java.lang.String  
  8. scala> val m = manOf(List(1))  
  9. m: Manifest[List[Int]] = scala.collection.immutable.List[Int]  
  10. scala> m.erasure  
  11. res7: java.lang.Class[_] = class scala.collection.immutable.List  
  12. scala> m.typeArguments  
  13. res9: List[scala.reflect.Manifest[_]] = List(Int)  
  14. scala> val m2 = manOf(List(1, "string"))  
  15. m2: Manifest[List[Any]] = scala.collection.immutable.List[Any]  
  16. scala> m <:< m2  

 

  1. res10: Boolean = true  
 
  1. scala> "123"  
  2. res0: java.lang.String = 123  
  3. scala> 123  
  4. res1: Int = 123  
  5. scala> 12.3  
  6. res2: Double = 12.3  
  7. scala> "123".getClass.getSimpleName  
  8. res3: java.lang.String = String  
  9. scala> 123.asInstanceOf[AnyRef].getClass.getSimpleName  
  10. res5: java.lang.String = Integer  
  11. scala> 12.3.asInstanceOf[AnyRef].getClass.getSimpleName  
  12. res6: java.lang.String = Double  

 

 类似资料: