我有一个类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
?
答案 0 :(得分:2)
您可以使方法通用:
<T> List<UUID> extractUuids(List<Identifier<T>> identifiers)