2012-05-02 79 views
7

我正在使用Scala與Java的反射API一起工作。但我似乎無法弄清楚如何在Scala中訪問Java中的內容:int.class,float.class,boolean.class。如何在Scala中獲得Java的int.class?

基本上代表原始數據類型的類對象。

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

回答

14

int.class,float.class等不存在。等價盒裝類型每個都有一個名爲TYPE的靜態字段,它表示原始類型。你是這個意思嗎?

例如對於int /整數:

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

如果是這樣,你從斯卡拉引用它就像你在Java中會:

scala> Integer.TYPE 
res0: java.lang.Class[java.lang.Integer] = int 
13
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 
+0

這是一個更好的答案,因爲它提供了類的原始類型。 – Dragonborn