将整数数组转换为java中的对象数组

Kla*_*Nji 2 java arrays casting

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

long[] css = new long[]{1, 2, 3};
Object[] objs = Arrays.copyOf(ccs, ccs.length, Object[].class );
Run Code Online (Sandbox Code Playgroud)

错误是:类型Arrays中的方法copyOf(long [],int)不适用于参数(long [],int,Class)

铸造是必需的

org.hibernate.criterion.Restrictions.in("PropertyName", objs );
Run Code Online (Sandbox Code Playgroud)

任何想法或推荐的方法?

TIA.

ddm*_*mps 9

你不能在java中这样做.long是一种原始类型,因为它没有扩展Object.Long,这是一个包装类long,可以并且可以转换为Object.要创建a Long[],long[]您需要遍历每个值long[]并将其复制到Long[]:

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

然后你可以把它投射到一个数组Object:

Object[] objs = wrappedLong;
Run Code Online (Sandbox Code Playgroud)

或者您甚至可以Object直接制作包裹类型的龙,这样您就不需要进行铸造.