从Java Play框架调用Scala,该框架接受一个类标记

从Java Play框架调用Scala,该框架接受一个类标记,java,scala,playframework,Java,Scala,Playframework,我试图从一个PlayJava类调用一个Scala方法,该方法将ClassTag作为参数 我失败的尝试是 Option<LocalUser> localUser = Cache.getAs(userId.userId(), app, new ClassTag<LocalUser>() ); Option localUser=Cache.getAs(userId.userId(),app,new ClassTag()); API方法如下所示 Cache.getAs(St

我试图从一个PlayJava类调用一个Scala方法,该方法将ClassTag作为参数

我失败的尝试是

 Option<LocalUser> localUser = Cache.getAs(userId.userId(), app, new ClassTag<LocalUser>() );
Option localUser=Cache.getAs(userId.userId(),app,new ClassTag());
API方法如下所示

Cache.getAs(String key, Application app, ClassTag<LocalUser> ct );
Cache.getAs(字符串键、应用程序应用程序、类标签ct);

从Java调用不同的Scala API时,我遇到了同样的问题。您可以使用:

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

我不确定Scala为什么需要另一个类和一个静态对象,但我认为这本质上相当于一个静态方法
ClassTag.apply(class)

失败是什么意思?它说不能将ClassTag实例化为其抽象..hm。它应该会起作用。您导入哪个类标签?从哪个包?您不需要
MODULE$
,只需编写
scala.reflect.ClassTag.apply(LocalUser.class)
或只是
ClassTag(LocalUser.class)