La pregunta se explica mejor con un ejemplo:
En Java para un EntityManager JPA, puedo hacer lo siguiente (La cuenta es mi clase de entidad):
Account result = manager.find(Account.class, primaryKey);
En Scala, mi intento ingenuo es:
val result = manager.find(Account.class, primaryKey)
Pero cuando trato de usar Account.class
en Scala, parece que no me gusta esto. ¿Cómo puedo especificar el objeto java.lang.Class para la clase Account en Scala?
Respuestas:
De acuerdo con " El sistema de tipo Scala ",
Sin embargo,
classOf[T]
ygetClass
devuelve valores ligeramente diferentes, reflejando el efecto de borrado de tipo en la JVM, en el caso de getClass.Es por eso que lo siguiente no funcionará :
Hay un billete con respecto al tipo de retorno
getClass
.( James Moore informa que el boleto está "ahora", es decir, noviembre de 2011, dos años después, corregido.
En 2.9.1,
getClass
ahora hace:)
De vuelta en 2009:
Nota: con respecto a
getClass
, una posible solución sería:fuente
classOf[Account]
en Scala es equivalente aAccount.class
en Java.fuente