我使用的是 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[] 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,这样您就不需要转换了。
关于java - 在java中将整数数组转换为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13868753/