簡體   English   中英

使用原始類型作為泛型對象

[英]using primitive type as Generic object

我有一種從數組中檢索元素的方法,並且我想對幾種原始類型(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;
}

我看過一些有類似問題的帖子,但找不到很好的答案,或者至少不能理解。 最接近的響應是此線程Java Generic Primitive類型的nd數組

一些建議使用Object [],然后在運行時獲取原始類型,但我不知道如何。 我猜該方法的簽名看起來類似於:

public static Object[] getElementsFromTo(Object[] data,int from, int to)

但是,如何獲取數據的類型以使用適當的原始類型實例化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;
}

這將復制原始和非原始數組類型的數組,但是使用反射來完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM