gpt4 book ai didi

java - Scala 中的新 Java 类 : takes type paremeters

转载 作者:行者123 更新时间:2023-12-02 10:38:56 26 4
gpt4 key购买 nike

有一个类:

public class DeserializerHelper<T> extends AbstractSchemaHelper {
public DeserializerHelper(Map<String, Object> config, Class<T> messageClass) {
this(config, messageClass, null);
}
}

我正在尝试在 Scala 中更新它:

val decoder = new DeserializerHelper(config, classOf[GenericRecord])

但是我得到了Type DeserializerHelper 采用类型参数

[ERROR]  found   : scala.collection.immutable.Map[String,Object]
[ERROR] required: java.util.Map[String,Object]

如何解决这个问题?谢谢

最佳答案

显然,您试图为其提供错误类型的Map。 Scala 的 scala.collection.immutable.Map 和 Java 的 java.util.Map 不相关。这在这里工作得很好:

Java:

public class DeserializerHelper<T> {
public DeserializerHelper(java.util.Map<String, Object> conf, Class<T> msg){}
}

斯卡拉:

object newDeserializerHelper {
def main(args: Array[String]): Unit = {
val config = new java.util.HashMap[String, AnyRef]
val decoder = new DeserializerHelper(config, classOf[String])
println("compiles...")
}
}

如果您使用 javac 编译前者,使用 scalac 编译后者,则一切正常,不会出现错误或警告。

或者,在 Scala 端使用 JavaConverters

关于java - Scala 中的新 Java 类 : takes type paremeters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53070664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com