如何在Java中创建泛型数组?(Generic Array)
大家好!我开始学习Java中的泛型,遇到了一个几个小时都没解决的问题。我需要创建一个方法,该方法接受任意类型的数组,并返回一个只包含唯一元素的新数组。例如,我想传入`String[]`并得到去重后的`String[]`,或者传入`Integer[]`并得到`Integer[]`。
这是我的代码:
```java
public class UniqueArray {
public static T[] getUnique(T[] input) {
// 首先想创建一个结果数组,但不知道它的大小
T[] result = new T[input.length]; // 编译错误!
// ... 其余逻辑
return result;
}
}
```
编译器报错:"Cannot create a generic array of T"。我了解到由于类型擦除(type erasure),在Java中不能直接创建泛型数组。那该怎么办?有没有变通方法?我需要返回`T[]`类型的数组,而不是`Object[]`或`List`,因为