我正在使用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。
最佳答案
您无法在Java中做到这一点。 long
是原始类型,因此不会扩展Object
。 Long
是long
的包装器类,确实可以并将其强制转换为Object
。要从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
数组:Object[] objs = wrappedLong;
或者甚至可以直接制作
Object
类型的wrappedLong,这样就不需要强制转换。