java - 从 Scala 调用 Java 方法(处理泛型)失败

标签 java scala generics

我想从 Scala (2.10.3) 调用这个 Java 方法(API 的一部分):

public <R> ConvertedResult<R> to(Class<R> type,
    ResultConverter<Map<String, Object>, R> converter)

ResultConverter 接口(interface)为:

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

此案如何处理?

最佳答案

界面上的 Mapjava.util.Map,但是,假设您尚未导入它,您正在使用 scala.collection.immutable .Map,因此不兼容。

关于java - 从 Scala 调用 Java 方法(处理泛型)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21395684/

相关文章:

java - 为什么此代码会因 sourceCompatibility=1.8 而失败

java - 意外消息 - 没有使用连接拦截器注册端点

scala - 如何在Scala中合并Option值?

启用 DefaultTyping 时,Scala 枚举序列化使用 Jackson 失败

c# - 具有相同签名的成员已经定义了不同的类型约束

java - Spring Data Repository Generics - 尝试获取错误的类型

Java 垃圾回收问题

java - spring-data-redis java.lang.ClassCastException

java返回带有两个json数组的json对象

scala - 如何以编程方式关闭 fs2.StreamApp?