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
   }
}

我似乎无法找到一种方法让 Scala 明白我不知道 SomeType 是什么,只是不管它是什么,返回的泛型集都将具有与提供的列表相同的泛型类型。它抱怨我没有定义 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 回答