gpt4 book ai didi

java - Scala 与 Java 互操作并使用对象重写方法

转载 作者:行者123 更新时间:2023-12-02 04:14:33 32 4
gpt4 key购买 nike

我有这个Java接口(interface)

public interface IFoo {

List<Map<String, Object>> getMaps() throws Exception;
}

如何重写此方法?我尝试过:

import scala.collection.JavaConverters._
class Foo extends IFoo{
override def getMaps: util.List[util.Map[String,AnyRef]] = {
List(Map("A" -> "B")).asJava
}
}

但我收到此编译错误

overriding method getMaps in trait IFoo of type ()java.util.List[java.util.Map[String,Object]]; [ERROR] method getMaps has incompatible type

我可以做这样的事情:

import scala.collection.JavaConverters._
class Foo extends IFoo{
override def getMaps: util.List[util.Map[String,AnyRef]] = {
List(Map("A" -> "B".asInstanceOf[AnyRef)).asJava
}
}

But is it the correct way ?

最佳答案

您还需要将 Map 转换为 Java Map,并且有更好的方法来提供值类型:

List(Map[String, AnyRef]("A" -> "B").asJava).asJava

关于java - Scala 与 Java 互操作并使用对象重写方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33462379/

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