使用 Java 9 编译 Scala 的不明确引用错误



目前我在针对Java 9的Scala中面临以下编译错误:

: ambiguous reference to overloaded definition,
both method putAll in class Properties of type (x$1: java.util.Map[_, _])Unit
and  method putAll in class Hashtable of type (x$1: java.util.Map[_ <: Object, _ <: Object])Unit
match argument types (java.util.Properties)
  newProps.putAll(props)

newProps被定义为:

  val newProps = new Properties

我尝试了newProps.asInstanceOf[java.util.Map[...]]的变体,但得到了不同的编译错误。

欢迎任何提示。

正如

@Ted指出的那样,这是一个已知问题。一种工作方法是用这样的东西代替putAll

props.forEach((k, v) => newProps.put(k, v))

请注意,通过这样做,您的操作不再是原子操作,但很可能这在您的情况下并不重要。

最新更新