我将Hazelcast 3.5
与Scala
我是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] ^
请指导我的代码错误
由于
答案 0 :(得分:0)
您指的是[{1}},List
和Map
类型,它们是Scala集合类型。要按照接口要求使用Java类型,请添加Set
或单独导入它们。