java - 对遗留代码使用泛型

标签 java generics

在我的项目中,我们使用的外部 API 不是通用的,所以有一个类叫做 ItemList这是 java.util.List 的实现, 它包含 Item 的列表对象。但是在我们的新代码中,我们将其表示为 List<Item> , 我想写一个可以同时接受 ItemList 的方法和 List<Item> , 我试过这种签名:

public static void readList(List<?> list) {}

它工作正常,但问题是有来自 Object 的转换至 Item在此方法内部,当参数为 ItemList 时使用,并且对于 List<Item> 不是必需的, 有更好的方法吗?

最佳答案

如果ItemListList 的实现, 如果你知道它包含 Item实例,只需将其转换为 List<Item> .您会收到类型安全警告,但它的安全性不亚于强制转换 ItemList 的每个元素。至 Item .

关于java - 对遗留代码使用泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7235218/

相关文章:

java - 调用超父类(super class)方法

java - 如何在 android 应用程序的 Activity 之间传递自定义对象的链接列表?

java - 寻找 java.util.Map 的替代品

java - 如何使用模式中的变量来替换所有除外?

java - 使用泛型的语法问题

java - 缺少通用类类型的导入建议

java - 泛型类型和通配符类型的区别

Java表达式优化

ios - 将通用数组转换为 NSOrderedSet?

Java 泛型,类型变量作用域