2012-05-02 5 views
7

Ich verwende Scala, um etwas mit der Reflektions-API von Java zu arbeiten. Aber ich kann nicht herausfinden, wie man in Scala auf Java zugreifen kann: int.class, float.class, boolean.class.Wie bekomme ich Javas int.class in Scala?

Grundsätzlich die Klassenobjekte, die die primitiven Datentypen darstellen.

Also, was ist die Scala-Version von int.class?

Antwort

14

int.class, float.class usw. existieren nicht. Die äquivalenten Boxentypen haben jeweils ein statisches Feld mit dem Namen TYPE, das den primitiven Typ darstellt. Ist es das was du meinst?

z.B. für int/Integer:

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

Wenn ja, können Sie es von Scala Referenz wie würden Sie in 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

Dies ist eine bessere Antwort, weil es die Klasse der primitiv bietet Arten. – Dragonborn