在对象数组(Object Arraysand )和基本类型数组(Primitive Arrays)间转换
问题提出:需要在对象数组和基本类型数组间进行转换
解决方法:使用ArrayUtils.toObject()和ArrayUtils.toPrimitive()方法。
使用举例:
Discussion:考虑以下场景:假设一个外部系统期望我们提供一个以Double对象为元素的List,而我们内部系统只有一个double[],以下代码可以使两者达到匹配。
ArrayUtils.toPrimitive( resultObjArray, Double.NaN )指定当某元素为null的时候将用第二个参数代替。因为第二个参数是可选的,当不指定时将会抛出NullPointerException异常。
问题提出:需要在对象数组和基本类型数组间进行转换
解决方法:使用ArrayUtils.toObject()和ArrayUtils.toPrimitive()方法。
使用举例:
import org.apache.commons.lang.ArrayUtils;
long[] primitiveArray = new long[] { 12, 100, 2929, 3323 };
Long[] objectArray = ArrayUtils.toObject( primitiveArray );
Double[] doubleObjects = new Double[] { new Double( 3.22, 5.222, 3.221 ) };
double[] doublePrimitives = ArrayUtils.toPrimitive( doubleObject );
long[] primitiveArray = new long[] { 12, 100, 2929, 3323 };
Long[] objectArray = ArrayUtils.toObject( primitiveArray );
Double[] doubleObjects = new Double[] { new Double( 3.22, 5.222, 3.221 ) };
double[] doublePrimitives = ArrayUtils.toPrimitive( doubleObject );
Discussion:考虑以下场景:假设一个外部系统期望我们提供一个以Double对象为元素的List,而我们内部系统只有一个double[],以下代码可以使两者达到匹配。
// Assume that temps is a 4000 element double[]
double[] temps = readTemps( );
// Turn the double[] into an array of Double objects
Double[] objectArray = ArrayUtils.toObject( temps );
List inputList = Arrays.asList( objectArray );
// Assume that some process returns results as a List of Double
// objects
List outputList = externalLib.complexCalculation( inputList );
// Transform this List of doubles to an array of double primitives
Double[] resultObjArray =
(Double[]) outputList.toArray( new Double[0] );
double[] result =
ArrayUtils.toPrimitive( resultObjArray, Double.NaN );
ArrayUtils.toPrimitive()中对象数组可以为null,最后一句double[] result = double[] temps = readTemps( );
// Turn the double[] into an array of Double objects
Double[] objectArray = ArrayUtils.toObject( temps );
List inputList = Arrays.asList( objectArray );
// Assume that some process returns results as a List of Double
// objects
List outputList = externalLib.complexCalculation( inputList );
// Transform this List of doubles to an array of double primitives
Double[] resultObjArray =
(Double[]) outputList.toArray( new Double[0] );
double[] result =
ArrayUtils.toPrimitive( resultObjArray, Double.NaN );
ArrayUtils.toPrimitive( resultObjArray, Double.NaN )指定当某元素为null的时候将用第二个参数代替。因为第二个参数是可选的,当不指定时将会抛出NullPointerException异常。
- 09:28
- 浏览 (16)
- 评论 (0)
- 分类: [网站分类]2.Java新手区
- 相关推荐







评论排行榜