2015-06-11 101 views
0

我有一个类Identifier<T>它基本上是一个UUID类型安全的包装(因此类Foo包含一个Identifier<Foo>)。如何将List <Identifier <Foo>>传递给List <Identifier <?>>参数的方法?

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

在另一类中,我需要将此List<Identifier<Foo>>变成List<UUID>。为Foo实现这个方法很简单,但我该如何声明该方法才能适用于任意类,即Bar而不是Foo

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

+0

名单<标识符>标识符?或列表<标识符<?扩展knownSuperClassOfFooAndBar >>标识符 –

+0

两个版本仍然不能编译:-( –

回答

2

可以使该方法一般:

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

完美,非常感谢! –

相关问题