如何传递List <identifier <foo>&gt;使用List <identifier <?>&gt;的方法参数?

时间:2015-06-11 10:08:55

标签: java generics collections

我有一个类Identifier<T>,它本质上是一个围绕UUID的类型安全包装器(因此类Foo包含Identifier<Foo>)。

FooStore类有一个方法List<Identifier<Foo>> bulkReadIdentifiers()

在另一个课程中,我需要将此List<Identifier<Foo>>转换为List<UUID>。实现为Foo执行此操作的方法是微不足道的,但是如何声明方法以使其适用于任意类,即Bar而不是Foo

方法List<UUID> extractUuids(List<Identifier<?>> identifiers)导致编译错误,因为?Foo不匹配。如果不使用涉及原始列表的hack和/或@SuppressWarnings

,是否可以解决这个问题

1 个答案:

答案 0 :(得分:2)

您可以使方法通用:

<T> List<UUID> extractUuids(List<Identifier<T>> identifiers)