从Scala调用Java方法(处理泛型)失败
我想从Scala(2.10.3)调用这个Java方法(API的一部分): 首先,我创建了我的转换器(在Scala so中): 在呼叫时,提供如下类型和my从Scala调用Java方法(处理泛型)失败,java,scala,generics,Java,Scala,Generics,我想从Scala(2.10.3)调用这个Java方法(API的一部分): 首先,我创建了我的转换器(在Scala so中): 在呼叫时,提供如下类型和myMyVOConverter: myResult.to(classOf[MyVO], new MyVOConverter()) 但是,Scala编译器对此发出警告: Type mismatch, expected: ResultConverter[Map[String, AnyRef], NotInferedR], actual: MyVOCo
MyVOConverter
:
myResult.to(classOf[MyVO], new MyVOConverter())
但是,Scala编译器对此发出警告:
Type mismatch, expected: ResultConverter[Map[String, AnyRef], NotInferedR],
actual: MyVOConverter
如何处理这种情况?界面上的
Map
是java.util.Map
,但是,假设您没有导入,您使用的是scala.collection.immutable.Map
,因此不兼容。您是否尝试过到[MyVO](classOf…
)@Rex Kerr我刚刚尝试过,但现在它抱怨方法到
本身:无法将符号解析到
。这里是我刚刚测试的:myResult.to[MyVO](classOf[MyVO],new MyVOConverter())
噢,我想
是来自封闭类的吧?也许您可以坚持让封闭类的类型参数为MyVO
?@RexKerr使用该语法,R
应该是该方法的一个参数。您可以提供一个指向您正在使用的API的javadoc的链接吗?
class MyVOConverter extends ResultConverter[Map[String, AnyRef], MyVO] {
def convert(queryResult: Map[String, AnyRef],
`type`: Class[MyVO]): MyVO = {
//...
}
}
myResult.to(classOf[MyVO], new MyVOConverter())
Type mismatch, expected: ResultConverter[Map[String, AnyRef], NotInferedR],
actual: MyVOConverter