此方法位于我们正在调用的 Java 库中
public void setNumbers(Map<Integer, ? extends COSObjectable> numbers) {
...
}
我有一个混合 Java/Scala 项目,我将工作代码从 Java 类移至 Scala 类,现在我无法从 Scala 获取此调用。我能得到的最好的是
val numbers = new util.HashMap[Integer, _ <: COSObjectable ]
node.setNumbers(numbers)
编译失败
需要类类型,但找到 java.util.HashMap[Integer, _ <: org.apache.pdfbox.pdmodel.common.COSObjectable]
map 的COSObjectable参数是一个java接口(interface)
public interface COSObjectable {
COSBase getCOSObject();
}
我不确定 Scala 在与接口(interface)一起使用时是否喜欢这种语法。似乎是说我只能通过类来做到这一点。
最佳答案
我想也许我只是太努力了,脱掉 _ <: 似乎有效
val numbers = new util.HashMap[Integer, COSObjectable ]
关于java - Scala 映射值扩展接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47581728/