2012-05-02 9 views
7

Używam Scala do pracy z Java API refleksji. Ale nie mogę się dowiedzieć, jak uzyskać dostęp w Scali, co w Javie byłoby: int.class, float.class, boolean.class.Jak uzyskać klasę int. Java w Scali?

Zasadniczo klasy obiektów reprezentujących pierwotne typy danych.

Więc jaka jest wersja klasy intala w Scali?

Odpowiedz

14

int.class, float.class itp. Nie istnieją. Równoważne typy pudełkowe mają statyczne pole o nazwie TYPE, które reprezentuje typ pierwotny. Czy to masz na myśli?

np. dla INT/Integer:

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

Jeśli tak, można odwołać się od Scala tak jak byś w Javie:

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

Jest to lepsze rozwiązanie, ponieważ zapewnia klasę prymitywny typy. – Dragonborn