java - Java 中的 Collections.checkedList() 调用是什么?

标签 java generics collections

我只想知道为什么java.util.Collections.checkedList()实际使用。

我有一些代码,我知道它会返回一个 List<String>但它正在通过一系列消息传递调用并作为 java.io.Serializable 返回给我.那个 checkedList 调用对我有用吗 Serializable进入 List<String> ?我知道我可以将它转换为 java.util.List ,但我宁愿不必检查每个元素,而且我不愿意假设每个元素都是 String .

最佳答案

它在一定程度上用作调试工具,用于查找代码在何处插入了错误类型的类,以防您看到这种情况发生但无法确定位置。

您可以将它用作提供集合的公共(public) API 的一部分,并且您希望确保该集合中不会包含任何错误类型的内容(例如,如果客户端删除泛型)。

您可以在您的案例中使用它的方式是:

 Collections.checkedList(
      new ArrayList<String>(uncertainList.size()), String.class)
      .addAll(uncertainList);

如果没有抛出异常,那么你就知道你很好。这并不是一段性能优化的代码,但如果列表内容相当小,应该没问题。

关于java - Java 中的 Collections.checkedList() 调用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1161176/

相关文章:

java - 将 OBIEE 与 Web 应用程序集成

Java 泛型 - 具有 "extends"类型集合参数的方法拒绝有效参数?

java - Sonar 问题 - 参数必须为非空但标记为可为空

java - 如何判断ResultSet中数据的类型?

java - 如何控制 Java 正则表达式中的迭代步骤?

java - Vagrant 在错误的目录中寻找 Java

c# - 将通用类绑定(bind)到特定接口(interface)

java - 如何限制 Java 泛型类型中允许类型的数量

scala - 对集合执行多次操作后返回相同的集合类型

java - 用泛型和集合实现 compareTo()