java - 如何将 List<Identifier<Foo>> 传递给带有 List<Identifier<?>> 参数的方法?

标签 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 。可以在不使用涉及原始列表和/或@SuppressWarnings的黑客的情况下解决这个问题吗? ?

最佳答案

您可以使该方法通用:

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

关于java - 如何将 List<Identifier<Foo>> 传递给带有 List<Identifier<?>> 参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30777819/

相关文章:

java - 我可以在我的应用程序崩溃之前调用方法吗

java - 如何通过index.html spring更改index.jsp

java - 在 Java 中使用嵌套类实现 Iterable

MongoDB 集合连字符名称

java - getResourceAsStream 返回空值

java - 导入外部 jar 文件

c# - 是否可以在 C# 中为可空值和不可空值编写隐式转换运算符?

c# - ToString() 没有返回预期的字符串

c# - 在 C# 中使用 F# 数据类型

java - 在abstractmap类内部,为什么remove()不显示UnsupportedOperationException?