我想从Scala(2.10.3)中调用这个Java方法(API的一部分):
public <R> ConvertedResult<R> to(Class<R> type,
ResultConverter<Map<String, Object>, R> converter)
ResultConverter
界面是:
public interface ResultConverter<T, R> {
R convert(T value, Class<R> type);
}
首先,我创建了我的转换器(在Scala中):
class MyVOConverter extends ResultConverter[Map[String, AnyRef], MyVO] {
def convert(queryResult: Map[String, AnyRef],
`type`: Class[MyVO]): MyVO = {
//...
}
}
在拨打电话时提供类型和我的MyVOConverter
:
myResult.to(classOf[MyVO], new MyVOConverter())
然而,Scala编译器警告说:
Type mismatch, expected: ResultConverter[Map[String, AnyRef], NotInferedR],
actual: MyVOConverter
如何处理这种情况?
答案 0 :(得分:1)
界面上的Map
为java.util.Map
,但是,假设您尚未导入scala.collection.immutable.Map
,那么您使用的是{{1}},因此不兼容。