0

scala を使用して、グリッドキャッシュのリードスルーとライトスルーの 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

この状況のた​​めに存在型が作成されました。Programming in Scalaの現在無料のオンライン初版のCombining Scala and 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 に答える