scala 查看对象类型 check type

本文通过一系列Scala代码示例,展示了如何使用类型表现(Manifest)来获取类型信息,并进行了类型检查和转换操作。包括基本类型的类型表现获取、复杂类型如List[Int]的类型表现创建及类型参数的提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值