2014-02-05 20 views
9

我试图让从一个播放Java类Scala的方法,这需要ClassTag作为参数调用调用的Scala从Java游戏框架,这需要ClassTag

我的失败尝试

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

API方法看起来像这样

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

失败是什么意思? –

+0

它说不能实例化ClassTag作为它的摘要.. –

+0

嗯。它应该工作。你输入哪个ClassTag?从哪个包? –

回答

19

从Java调用不同的斯卡拉API,当我有同样的问题。你会使用:

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

我不知道为什么斯卡拉需要其他类和静态对象,但我认为这基本上是一个静态方法ClassTag.apply(Class)的等价物。

+0

你不需要'MODULE $',你可以直接写'scala.reflect.ClassTag.apply(LocalUser.class);' –