使用Scala在Hazelcast 3.5中实现StoreLoad的错误

时间:2015-08-19 08:12:56

标签: scala hazelcast

我将Hazelcast 3.5Scala

一起使用

我是Hazelcast的新手,我正在尝试为我的一个类编写一个示例StoreLoad实现,以检查我的回调是否被调用但是我收到错误

这是我的班级

的storeload实现
    class AbcStoreLoad extends MapStore[Int, Abc] with MapLoader[Int, Abc] with  MapLoaderLifecycleSupport {



 override def load(id : Int): Abc = {
   println("id is " + id )
   new Abc
 }

     override def loadAll(idList : List[Int]): Map[Int ,Abc] = {
      val abcMap : Map[ Int , Abc] = Map()
      abcMap
    }

  override def loadAllKeys(): Set[Int] = {
  val keySet : Set[Int] = Set()
  keySet
}


   override def destroy() {
      // TODO Auto-generated method stub
      println( "------------")

   }


  def init(hcast : HazelcastInstance,prop : java.util.Properties, agrs: String): Unit = {

  }


 override  def delete(id : Int): Unit = {

}

   override  def deleteAll(keySet : Set[Int]): Unit = {

   }


   override  def store ( uuid : Int, abc : Abc){
    println("object with uuid as a key is stored in the Hcast Map")
    println("object id : " + uuid)
  }

   override def storeAll(x1: Map[Int , Abc]): Unit = {

  }


   def close() = {
      println( "------------")


   }


}

当我编译此代码时,我得到以下错误

[error] /home/ahsen/scalaworkspace/hcastserver/src/main/scala/AbcStoreLoad.scala:34: overriding method loadAllKeys in trait MapLoader of type ()Iterable[Int];
[error]  method loadAllKeys has incompatible type
[error]   override def loadAllKeys(): Set[Int] = {
[error]                ^
[error] /home/ahsen/scalaworkspace/hcastserver/src/main/scala/AbcStoreLoad.scala:10: class AbcStoreLoad needs to be abstract, since:
[error] it has 3 unimplemented members.
[error] /** As seen from class AbcStoreLoad, the missing signatures are as follows.
[error]  *  For convenience, these are usable as stub implementations.
[error]  */
[error]   // Members declared in com.hazelcast.core.MapLoader
[error]   def loadAll(x$1: java.util.Collection[Int]): java.util.Map[Int,Abc] = ???
[error]   
[error]   // Members declared in com.hazelcast.core.MapStore
[error]   def deleteAll(x$1: java.util.Collection[Int]): Unit = ???
[error]   def storeAll(x$1: java.util.Map[Int,Abc]): Unit = ???
[error] class AbcStoreLoad extends MapStore[Int, Abc] with MapLoader[Int, Abc] with  MapLoaderLifecycleSupport {
[error]       ^
[error] /home/ahsen/scalaworkspace/hcastserver/src/main/scala/AbcStoreLoad.scala:29: method loadAll overrides nothing.
[error] Note: the super classes of class AbcStoreLoad contain the following, non final members named loadAll:
[error] def loadAll(x$1: java.util.Collection[Int]): java.util.Map[Int,Abc]
[error]      override def loadAll(idList : List[Int]): Map[Int ,Abc] = {
[error]                   ^
[error] /home/ahsen/scalaworkspace/hcastserver/src/main/scala/AbcStoreLoad.scala:64: method deleteAll overrides nothing.
[error] Note: the super classes of class AbcStoreLoad contain the following, non final members named deleteAll:
[error] def deleteAll(x$1: java.util.Collection[Int]): Unit
[error]    override  def deleteAll(keySet : Set[Int]): Unit = {
[error]                  ^
[error] /home/ahsen/scalaworkspace/hcastserver/src/main/scala/AbcStoreLoad.scala:74: method storeAll overrides nothing.
[error] Note: the super classes of class AbcStoreLoad contain the following, non final members named storeAll:
[error] def storeAll(x$1: java.util.Map[Int,Abc]): Unit
[error]    override def storeAll(x$1: Map[Int , Abc]): Unit = {
[error]                 ^

请指导我的代码错误

由于

1 个答案:

答案 0 :(得分:0)

您指的是[{1}},ListMap类型,它们是Scala集合类型。要按照接口要求使用Java类型,请添加Set或单独导入它们。