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


问题内容

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

我有一些我知道会返回给我的代码,List<String>但是正在通过一系列消息传递传递给我,并以形式返回给我java.io.Serializable。那checkListList呼叫对我Serializable变成一个List<String>好吗?我知道我可以将其转换为a
java.util.List,但我宁愿不必检查每个元素,也不能认为每个元素都是a String


问题答案:

它可以部分用作调试工具,以查找代码在哪里插入了错误类型的类,以防万一您看到了这种情况,但无法确定在哪里。

您可以将其用作提供集合的公共API的一部分,并且要确保该集合中没有错误类型的任何内容(例如,如果客户端删除了泛型)。

在您的情况下可以使用它的方式是:

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

如果那没有引发异常,那么您就知道自己很好。那不是性能优化的代码,但是如果列表内容很小,那就没问题了。