目前我在针对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))
请注意,通过这样做,您的操作不再是原子操作,但很可能这在您的情况下并不重要。