Scala通用但未知参数

时间:2013-01-06 21:51:55

标签: scala generics

我在使用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
   }
}

我似乎无法找到一种方法让Scala明白我不知道SomeType是什么,只要不管它是什么,返回的通用集将具有与提供的列表相同的泛型类型。它抱怨我没有定义SomeType。但那就是事情 - 我不知道或不关心SomeType是什么,它可以被称为YeahYeahYeah,我所关心的一切。

我不想使用List [Any],而List [_]会产生其他问题,所以...这样做的正确方法是什么?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

方法的类型参数是什么。

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