java中整数数组到对象数组的转换

java中整数数组到对象数组的转换,java,arrays,casting,Java,Arrays,Casting,我使用的是JDK 1.6,但下面代码段的第二行给出了Eclipse中的编译错误: long[] css = new long[]{1, 2, 3}; Object[] objs = Arrays.copyOf(ccs, ccs.length, Object[].class ); 错误是:类型数组中的方法copyOf(long[],int)不适用于参数(long[],int,Class) 铸造是必要的 org.hibernate.criterion.Restrictions.in("Proper

我使用的是JDK 1.6,但下面代码段的第二行给出了Eclipse中的编译错误:

long[] css = new long[]{1, 2, 3};
Object[] objs = Arrays.copyOf(ccs, ccs.length, Object[].class );
错误是:类型数组中的方法copyOf(long[],int)不适用于参数(long[],int,Class)

铸造是必要的

org.hibernate.criterion.Restrictions.in("PropertyName", objs );
有什么想法或建议的方法吗


TIA。

使用ApacheCommons'
ArrayUtils.toObject
,它正好做到了这一点。

在java中无法做到这一点
long
是一种基本类型,因此不扩展
对象
Long
,是
Long
的包装类,它可以强制转换为
对象
。要从
Long[]
创建
Long[]
,您需要遍历
Long[]
的每个值,并将其复制到
Long[]

long[] primitiveLong;
Long[] wrappedLong = new Long[primitiveLong.length];
for (int i=0; i<primitiveLong.length; i++) {
    wrappedLong[i] = primitiveLong[i];
}

或者你甚至可以直接制作
Object
类型的wrappedLong,这样你就不需要强制转换了。

+1我相信这就是所提到的copyOf方法的要求。这是一个副本而不是强制转换。谢谢。有没有快速的方法将long转换为long?我正在使用一个提供long[]而不是long[]的API。@Gili,我将如何进行角色转换?我当然不能做(Long[])new Long[]{1,2}@KNji,正确的答案是:“你所要求的在Java中是不可能的,但是你可以制作这样的副本…”
Object[] objs = wrappedLong;