2014-02-05 6 views
9

Я пытаюсь сделать вызов из класса Play Java на метод Scala, который принимает ClassTag в качестве параметраВызов Scala от Java Play Framework, который принимает ClassTag

Моя неудачу попытка

Option<LocalUser> localUser = Cache.getAs(userId.userId(), app, new ClassTag<LocalUser>()); 

метод API выглядит следующим образом

Cache.getAs(String key, Application app, ClassTag<LocalUser> ct); 
+0

Что вы подразумеваете под провалом? –

+0

Это говорит, что can not экземпляр ClassTag как его абстрактный. –

+0

Хмм. Он должен работать. Какой ClassTag вы импортируете? Из какого пакета? –

ответ

19

Я была такая же проблема при вызове другого Scala API из Java. Вы бы использовать:

ClassTag<LocalUser> tag = scala.reflect.ClassTag$.MODULE$.apply(LocalUser.class); 

Я не уверен, почему Scala требует другой класс и статический объект, но я думаю, что это по существу эквивалент статического метода ClassTag.apply(Class).

+0

Вам не нужен 'MODULE $', вы можете просто написать 'scala.reflect.ClassTag.apply (LocalUser.class);' –

Смежные вопросы