相同类型的Concat阵列

时间:2014-07-10 15:37:27

标签: java arrays generics

我试图创建一个连接两个数组(任何类型,只要它们在两者之间相同)的通用方法。我创建了一个不会在IDE中产生错误的方法,但是当我实际使用它来尝试连接2个String数组时,我得到的错误是Object []无法转换为String []。我理解这个错误,因为我之前已经在另一个程序中使用过它。据我所知,解决它的唯一方法是创建一个你想要的类型的新数组,然后遍历对象数组并单独地将所有对象强制转换为你想要的类型。有没有比使用像我这样的方法更好的方法来施放数组呢? 这是我的方法:

public static <T> T [] concatArrays(T [] a1, T [] a2)
{
    @SuppressWarnings("unchecked")
    T [] both = (T[]) new Object [a1.length + a2.length];

    for(int i = 0; i < a1.length; i++)
        both[i] = a1[i];

    for(int i = 0; i < a2.length; i++)
        both[i + a1.length] = a2[i];

    return both;
}

这是我第一次真正使用完整的泛型类型,所以我不知道我是否做得对。

0 个答案:

没有答案