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

Scala-在Scala类中重写Java接口方法

富凯旋
2023-03-14
public interface Writer<K, V> {

    Iterator<Product2<K, V>> iterator ();
}
private class ExternalWriter[K, V, C]
  extends Logging
  with Writer[K, V] {

    override def iterator(): Iterator[Product2[K, C]] = {
        partitionedIterator.flatMap(pair => pair._2)
  }
}

我怎么解决这个?

共有1个答案

袁晋鹏
2023-03-14

为什么要将V更改为C

您的重写方法应该是,

override def iterator(): Iterator[Product2[K, V]] = {
    partitionedIterator.flatMap(pair => pair._2)

如果您想使用C,那么应该用C实现writer

with Writer[K, C] {
 类似资料:
  • 我有这个Java接口 如何重写此方法?我试过:

  • 问题内容: 在Scala邮件列表中,不同的人经常说:“编译器将此[scala]代码重写为此[java / scala ??]代码”。例如,如果最新的线程之一,Scala看到 然后编译器将其重写为(有效): 我如何找出我的代码的编译器输出是什么?我应该为此反编译生成的字节码吗? 问题答案: 您可以使用“ -print”作为编译器选项,而scalac将删除所有Scala特定的功能。 例如,这是原始代码

  • 我有一个类扩展了另一个类(),并实现了一个接口(),如下所示: 接口类和父类都有函数,但我只想重写接口类。目前,这段代码会产生编译错误,因为父类()中的getMessage是。

  • 我需要从使用vararg参数的Java接口重写Java方法: 当我尝试在Scala中实现该方法时,如下所示 我在运行时得到一个"java.lang.AbstractMEDError: null"错误。 这是我已经尝试过的: > 使用Scala注释,它应该生成一个Java友好的委托方法= def apply(args:Array[Object]):Unit=apply(args:*) 它实际上被成功

  • 在我的<code>模块中。scala我绑定了一个特性的具体实现,定义如下: 并且使用< code>TypeLiteral完成绑定: 现在,我需要在使用 Mockito 模拟进行测试时覆盖此绑定: 但我得到以下错误: 我该如何解决这个问题? 这个问题涉及到如何使用Scala Guice绑定一个用一元类型参数扩展Trait的类?

  • 课程内容涵盖了Java互操作性。 Javap 类 异常 特质 单例对象 闭包和函数 变化性 Javap javap的是JDK附带的一个工具。不是JRE,这里是有区别的。 javap反编译类定义,给你展示里面有什么。用法很简单 [local ~/projects/interop/target/scala_2.8.1/classes/com/twitter/interop]$ javap MyTrai