我试图创建一个连接两个数组(任何类型,只要它们在两者之间相同)的通用方法。我创建了一个不会在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;
}
这是我第一次真正使用完整的泛型类型,所以我不知道我是否做得对。