2

Scalaでジェネリックパラメーターを使用してメソッドを定義するのに問題があります。

このようなものが欲しいとしましょう:

class CollectionConverter {
   def convertListToSet(list: java.util.List[SomeType]): java.util.Set[SomeType] = {
     val s = new java.util.HashSet[SomeType]
     s.addAll(list)
     s
   }
}

SomeTypeが何であるかわからないことを、Scalaに理解させる方法が見つからないようです。それが何であれ、返されるジェネリックセットは提供されたリストと同じジェネリックタイプになります。SomeTypeを定義していないと文句を言います。しかし、それが問題です。SomeTypeが何であるかはわかりませんし、気にしません。気にするすべての人にとって、YeahYeahYeahと呼ぶことができます。

List [Any]を使用したくないのですが、List [_]によって他の問題が発生するので、これを行う正しい方法は何ですか?

どんな助けでも大歓迎です!

4

1 に答える 1

4

これが、メソッドの型パラメーターの目的です。

def convertListToSet[SomeType](list: java.util.List[SomeType]): java.util.Set[SomeType] = {
   val s = new java.util.HashSet[SomeType]
   s.addAll(list)
   s
}
于 2013-01-06T21:54:55.270 に答える