当前位置: 首页 > 知识库问答 >
问题:

Scala interop与Java的对象重写方法

宋高谊
2023-03-14

我有这个Java接口

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

共有1个答案

卫阳曜
2023-03-14

您还需要将map转换为Javamap,还有一种更好的方法来提供值类型:

List(Map[String, AnyRef]("A" -> "B").asJava).asJava
 类似资料:
  • 本文向大家介绍浅谈重写window对象的方法,包括了浅谈重写window对象的方法的使用技巧和注意事项,需要的朋友参考一下 重写window对象的方法不是一件新奇的事,比如我们可能需要改变默认alert的行为,如何安全的重写呢?      小菜看到某知名IT网站是这样的写法:      或者      实际上,这种写法有些欠妥。这相当于在window对象上添加了一个alert属性,它的优先级比系统

  • 本文向大家介绍PHP面相对象中的重载与重写,包括了PHP面相对象中的重载与重写的使用技巧和注意事项,需要的朋友参考一下 重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。Overloaded的方法是可以改变返回值的类型。也就是说,重载的返回值类型可以相同也可以不同。 重载(Overloading) a、方法重载是让类以统一的方式处理不同

  • 我无法理解为什么这个程序打印字符串 请帮助我了解如何打印Sting而不是Object

  • 可能重复: 基于参数的真实类型选择重载方法 当参数为文字空值时,如何选择重载方法? 当我执行下面的代码时,我得到以下输出: 名为“”的字符串参数为“”的方法。。。" 为什么?

  • 在子类中如果创建了一个与父类中相同名称、相同返回值类型、相同参数列表的方法,只是方法体中的实现不同,以实现不同于父类的功能,这种方式被称为 方法重写(override),又称为 方法覆盖。当父类中的方法无法满足子类需求或子类具有特有功能的时候,需要方法重写。 子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从而进行扩展增强。 在重写方法时,需要遵循

  • 问题内容: 用Java如何实现方法重写?在C ++中,我们有vtable的概念。.这是如何在Java内部实现的? 问题答案: 为了回答这个问题,特别是在虚拟机中如何实现覆盖,在Java虚拟机编程(Google图书链接)中有一篇文章。 VM将在所引用的类中寻找适当的方法定义,然后逐步处理继承栈。显然,在某些阶段将应用各种优化。 有关相关字节码指令的说明,请参见此处: invokevirtual会查看