如何在Scala中获取Java int.class?

时间:2012-05-02 03:48:54

标签: java scala reflection

我正在使用Scala与Java的反射API一起工作。但我似乎无法弄清楚如何在Scala中访问Java中的内容:int.class,float.class,boolean.class。

基本上是表示原始数据类型的类对象。

那么什么是int.class的Scala版本?

2 个答案:

答案 0 :(得分:15)

Welcome to Scala version 2.10.0-20120430-094203-cfd037271e (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_25).
Type in expressions to have them evaluated.
Type :help for more information.

scala> classOf[Int]
res0: Class[Int] = int

scala> classOf[Integer]
res1: Class[Integer] = class java.lang.Integer

答案 1 :(得分:14)

int.class,float.class等不存在。等效的盒装类型每个都有一个名为TYPE的静态字段,表示基本类型。这是你的意思吗?

e.g。 for int / Integer:

http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#TYPE

如果是这样,你就像在Java中一样从Scala引用它:

scala> Integer.TYPE
res0: java.lang.Class[java.lang.Integer] = int