我正在阅读Java Generics并且遇到阵列填充问题。
Gen<?> array[] = new Gen<?>[10];
for (int i = 0; i < array.length; i++) {
array[i] = (Integer) (i+3);
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
编译器说这个错误:不兼容的类型:整数不能转换为gen。
问题是,在这种情况下,如何填充或告知阵列我将要放入什么内容?谢谢。
答案 0 :(得分:0)
我不了解您的要求,但以下代码可能会帮助您了解其工作原理 -
<强> DataTypes.java 强>
public class DataTypes {
public static void main(String[] args) {
Gen<?> array[] = new Gen<?>[10];
for (int i = 0; i < array.length; i++) {
array[i] = new Gen<Integer>(i);
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i].getData() + " ");
}
}
}
<强> Gen.java 强>
class Gen<T> {
T data;
public Gen(T data) {
this.data = data;
}
public T getData() {
return data;
}
}
答案 1 :(得分:0)
实际上,您无法实例化泛型类型的任何内容。因此,您可以尝试创建对象数组,并在其中添加您添加的内容:
private Object[] tees;
public void addAll(T... objects)
{
tees = new Object[objects.length];
for (int i = 0; i < objects.length; i++)
tees[i] = objects[i];
}
@SuppressWarnings("unchecked") // when you cast without checking
public T[] getTees()
{
return (T[]) tees;
}
另外,你问的问题对我来说似乎很奇怪;当然,它可能会脱离背景,但你可能会遇到一些概念问题。