the*_*eme 0 java arrays generics primitive-types
我有一个从数组中检索元素的方法,我想对几种基本类型(int [],double [],...)使用相同的方法.方法如下:
public static int[] getElementsFromTo(int[] data,int from, int to){
int[] selectedData = new int[to-from];
for (int idx = from; idx < to; idx++){
selectedData[idx-from]=data[idx];
}
return selectedData;
}
Run Code Online (Sandbox Code Playgroud)
我看过一些有类似问题的帖子,但我找不到一个好的答案,或者至少理解它.最接近的响应是在这个线程Java Generic Primitive type nd array中.
有人建议使用Object []然后在运行时获取原始类型,但我不知道如何.我猜方法的签名看起来类似于:
public static Object[] getElementsFromTo(Object[] data,int from, int to)
Run Code Online (Sandbox Code Playgroud)
但是,如何获取数据的类型以使用正确的原始类型实例化selectedElements数组?
非常感谢
您可以实现的最接近的是使用以下内容
@SuppressWarnings("unchecked")
public static <A> A copyOf(A array, int from, int to) {
int len = to - from;
A a = (A) Array.newInstance(array.getClass().getComponentType(), len);
System.arraycopy(array, from, a, 0, len);
return a;
}
Run Code Online (Sandbox Code Playgroud)
这将复制原始和非原始数组类型的数组,但使用反射来完成它.
| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |