从Java Play Framework调用Scala,该框架采用ClassTag

2022-09-03 12:44:50

我正在尝试从Play Java类调用Scala方法,该方法将ClassTag作为参数

我失败的尝试是

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

API 方法如下所示

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

答案 1

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

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

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


答案 2

推荐