Вопрос лучше всего объяснить на примере:
В Java для JPA EntityManager я могу сделать следующее (Account - это мой класс Entity):
Account result = manager.find(Account.class, primaryKey);
В Scala моя наивная попытка:
val result = manager.find(Account.class, primaryKey)
Но когда я пытаюсь использовать Account.class
в Scala, кажется, это не так. Как я могу указать объект java.lang.Class для класса Account в Scala?
Ответы:
Согласно « Системе типов Scala »,
Однако
classOf[T]
иgetClass
возвращают немного другие значения, отражающие влияние стирания типа на JVM в случае getClass.Вот почему следующее не будет работать :
Есть билет в отношении типа возврата
getClass
.( Джеймс Мур сообщает, что билет «сейчас», то есть ноябрь 2011 года, два года спустя, исправлен.
В 2.9.1
getClass
теперь:)
Еще в 2009 году:
Примечание: относительно
getClass
, возможный обходной путь будет:источник
classOf[Account]
в Scala эквивалентноAccount.class
в Java.источник