用“重写”重写方法&引用;scala中的参数

用“重写”重写方法&引用;scala中的参数,scala,Scala,我试图在Scala中扩展以下java类 ,布尔值) 到目前为止,我编写的代码是 package com.abhi import org.apache.kafka.common.serialization.Serializer import scala.runtime.ObjectRef class PersonSerializer extends Serializer[Person] { override def configure(configs: Map[String, Objec

我试图在Scala中扩展以下java类

,布尔值)

到目前为止,我编写的代码是

package com.abhi

import org.apache.kafka.common.serialization.Serializer

import scala.runtime.ObjectRef

class PersonSerializer extends Serializer[Person] {
  override def configure(configs: Map[String, ObjectRef], isKey: Boolean) : Unit = {

  }

  override def serialize(topic: String, p : Person) : Array[Byte] = {
    Array[Byte]()
  }
}
但这给了我编译时错误
方法configure不覆盖任何内容


我已经尝试过搜索,但由于java定义中的“?”,我无法找到如何覆盖configure方法。请注意,在序列化程序接口中有一个java.util.Map,而不是scala.collection.Map。 您还需要定义close。 因此,您应该修复代码,如下所示:

class PersonSerializer extends Serializer[Person] {
  override def configure(configs: java.util.Map[String, _], isKey: Boolean) : Unit = {

  }

  override def serialize(topic: String, p : Person) : Array[Byte] = {
    Array[Byte]()
  }

  def close() {
    //do something
  }
}
请注意,无法定义更精确的类型来配置Map right参数,因为它是?因此,在它的java定义中,我们应该接受java.util.Map,它的值可以是任何东西(scala中的类型)