在对象数组(Object Arraysand )和基本类型数组(Primitive Arrays)间转换
问题提出:需要在对象数组和基本类型数组间进行转换
解决方法:使用ArrayUtils.toObject()和ArrayUtils.toPrimitive()方法。
使用举例:
import org.apache.commons.lang.ArrayUtils;

long[] primitiveArray = new long[] { 1210029293323 };
Long[] objectArray 
= ArrayUtils.toObject( primitiveArray );

Double[] doubleObjects 
= new Double[] { new Double( 3.225.2223.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 = 
ArrayUtils.toPrimitive( resultObjArray, Double.NaN  )指定当某元素为null的时候将用第二个参数代替。因为第二个参数是可选的,当不指定时将会抛出NullPointerException异常。
评论
发表评论

您还没有登录,请登录后发表评论