0

我正在尝试使用 scala 为 gridcache 的 read-through 和 write-through 编写一个 gridgain 实现。但是我无法将一些使用泛型的方法模式从java(这是它所写的)转换为scala。

有问题的java文档:http: //www.gridgain.com/javadoc30C/org/gridgain/grid/cache/GridCacheStore.html

具体来说

loadAll(String cacheName, GridCacheTx tx, Collection<? extends K> keys, GridInClosure2<K,V> c)

我遇到了麻烦

Collection<? extends K> keys

因为我不知道如何在 scala 中做到这一点。因此,如果有人可以向我展示在 scala 中执行此操作的最佳方法,那就太棒了。不幸的是,令人敬畏的 gridgain javadocs 还没有太多的 scala 示例。我也可以安全地忽略 GridCacheTx tx,因为我不会在我的应用程序中使用事务。

4

1 回答 1

2

为这种情况创建了存在类型。请参阅现在免费的在线Scala 编程第一版中的结合 Scala 和 Java

所以你可能需要定义:

def loadAll(cacheName: String, tx: GridCacheTx, 
  keys:Collection[T] forSome {T <: K}, 
  c: GridInClosure2[K,V])

我认为Collection[_ <: K]也可以工作。

我还在某处读到抽象类型也可用于处理类似情况,但我现在找不到链接,所以我不确定它是否涵盖了这种情况。编辑:实际上它也在书中(下一段中的 SetAndType 示例)

于 2011-05-05T04:23:42.813 回答