Mat*_*nry 40 java collections guava
摘要几乎说明了一切.以下是相关的代码片段ImmutableList.createFromIterable():
if (element == null) {
throw new NullPointerException("at index " + index);
}
Run Code Online (Sandbox Code Playgroud)
我已经多次遇到这种情况,并且无法理解为什么通用库函数应该强加这个限制.
编辑1:通过"通用",我对95%的案例感到满意.但我认为我还没有写过100个电话ImmutableList.of(),并且不止一次被这个电话咬过.不过,也许我是一个离群值.:)
编辑2:我猜我最大的抱怨是,当与标准java.util集合交互时,这会产生"打嗝" .正如您在演讲中指出的那样,null集合中s的问题可能会显示在远离插入这些空值的位置.但是,如果我有一长串代码在一端将空值放在标准集合中并在另一端正确处理它们,那么我无法在整个过程中的任何时候替换谷歌集合类,因为它会立即抛出一个NullPointerException.
Kev*_*ion 36
我在这段视频的25分钟点解释了这一点:http: //www.youtube.com/watch?v = ZeO_J2OcHYM
很抱歉这个懒惰的答案,但这毕竟只是一个"为什么"的问题(可能不适合StackOverflow?).
编辑:这是另一个问题我不知道我做的视频清晰:总(横跨世界上所有的Java代码),即对那些空友好的情况下被写入额外的代码量使用旧备用Collections.unmodifiableList(Arrays.asList(...))等checkArgument(!foos.contains(null))如果我们的产品系列没有为您处理,那么每个人都需要添加的额外调用量会超出总数(在所有世界Java代码中).大多数情况下,通过FAR,集合的用法不会期望存在任何空值,并且如果有的话,真的应该快速失败.
| 归档时间: |
|
| 查看次数: |
12547 次 |
| 最近记录: |