Google Collections相当于Apache Commons Collections ArrayUtils.toObject和ArrayUtils.toPrimitive

Era*_*dan 3 java arrays apache-commons guava

由于每个人都赞扬谷歌收藏 (例如在这里)为什么我找不到相应的ArrayUtils.toObject()ArrayUtils.toPrimitive()?它是无法使用的吗?我想念它吗?

Esk*_*sko 8

说实话,我不确定这些方法中的任何一种是否应该符合与收集相关的操作,因此我想知道为什么它们首先就是那里.

为了澄清一点,集合通常是一组对象,其中一些语义数据将它们绑定在一起,而数组只是一组预定的东西.该语义数据可以是关于接受或拒绝空值,重复,错误类型的对象或具有不可接受的字段值等的信息.

大多数-if并非所有集合都在内部使用数组,但数组本身不是集合​​.要获得作为集合的资格,它需要一些相关的魔法,例如移除和添加对象到任意位置,并且数组不能这样做.我非常怀疑你会在Google Collections中看到任何类型的数组支持,因为数组不是集合.

但是,由于Google Collections将成为Google的Guava库的一部分,这是一个通用的实用类库/框架,您可以从com.google.common.primitives包中找到您想要的内容,例如Booleans#asList(boolean... backingArray)Booleans#toArray(Collection<Boolean> collection).

如果你绝对觉得他们应该包括等于方法阿帕奇百科全书集合的.toObject().toPrimitive()在那里,你可以随时提交功能请求新的问题.

  • 感谢Esko这个伟大的答案!有趣的是,我们在Google Collections中有一个ObjectArrays实用程序类,尽管数组不是集合.但是,集合包没有任何与原语相关的东西 - 你有这些东西的正确引用. (3认同)