如何将 Long[] 转换为 long[]?例如,如果它不是下面的数组,我知道如何转换。
long ll = (Long)Object[1].longValue()
但是我如何转换为一个数组,下面是不对的,但任何人都可以纠正它吗?
long[] l_ar = (Long[])Object[]
如何将 Long[] 转换为 long[]?例如,如果它不是下面的数组,我知道如何转换。
long ll = (Long)Object[1].longValue()
但是我如何转换为一个数组,下面是不对的,但任何人都可以纠正它吗?
long[] l_ar = (Long[])Object[]
您可以根据以下内容窃取解决方案ArrayUtils
Long[] longObjects = { 1L, 2L, 3L };
long[] longArray = ArrayUtils.toPrimitive(longObjects);
没有标准的API 方法可以做到这一点(如何null
处理 -elements?),因此您需要自己创建这样的方法。
像这样的东西(会扔NullPointerException
在任何物体上null
):
public static long[] toPrimitives(Long... objects) {
long[] primitives = new long[objects.length];
for (int i = 0; i < objects.length; i++)
primitives[i] = objects[i];
return primitives;
}
使用 java 8 流:
public static long[] unboxed(final Long[] array) {
return Arrays.stream(array)
.filter(Objects::nonNull)
.mapToLong(Long::longValue)
.toArray();
}
为了做到这一点,最好的方法是浏览每个数组。
例如,从 Long[] 到 long[]:
Long[] objLong = new Long[10];
//fill objLong with some values
long[] primLong = new long[objLong.length]
for(int index = 0; index < objLong.length; index++)
{
primLong[index] = objLong[index];
}
由于自动拆箱,这应该通过将 Long 转换为 long 来解决。