java - Scala 映射值扩展接口(interface)

标签 java scala

此方法位于我们正在调用的 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/

相关文章:

java - Java 中是否有一个可以读取数学函数的包(就像计算器一样)?

scala - 如何与 Slick 建立 Redshift 连接?

arrays - 在 Play2 和 Scala 中解析没有数据类型的 JSON

java - 为什么 Stream() 在 Scala 中不像在 Java 中那样工作?是否有其他 API 与 Stream() API 功能相同?

java - 基本java代码错误

java - 需要从 ArrayLists<Double> 的 ArrayList 中删除元素

java - Pentaho : status 404 error on CentOS

java - 升级到 billingclient :billing:2. 1.0 后,IabHelper 不再导入 android.vending.billing.IInAppBillingService

scala - 什么 Scala 功能允许在 Any 上使用加号运算符?

scala - 等待 Play 框架中的 ws future 响应