如何从10L获得ClassTag [Long]

时间:2016-06-11 01:02:05

标签: scala boxing scala-reflect

使用以下代码:

val clz = 10L.getClass
val ClassTag(clz)

只获得盒装类型:

java.lang.Long

有更好的解决方案吗?或者在scala中是不可能的?

2 个答案:

答案 0 :(得分:2)

是什么让你认为它是盒装的?绝对不是:

scala> ClassTag(10L.getClass).runtimeClass.getName
res15: String = long

 scala> ClassTag(10L.getClass).runtimeClass == java.lang.Long.TYPE
 res17: Boolean = true

 scala> ClassTag(10L.getClass).runtimeClass == new java.lang.Long(10).getClass
 res18: Boolean = false

答案 1 :(得分:0)

不确定是否有Scala库,但是使用Java库:

val clz = java.lang.Long.TYPE