创建数组Java时的默认构造函数问题

时间:2015-02-19 01:49:01

标签: java arrays constructor

我有以下课程:

public class ArrayObjects<E> implements SomeImp<E>{
    int maxCapacity, actualSize;

    public ArrayObjects(){
        maxCapacity = 10;
        array = (E[]) new Object[maxCapacity];
    }
}

Eclipse标记错误并说明以下内容:

&#34;数组无法解析为变量&#34;

它还显示了一些其他细节:

-Type safety:取消选中从Object []到E []

的强制转换

有谁知道我做错了什么?我的目标是在我的类构造函数中有一个数组,它可以容纳任何类型的对象(这就是我试图使其成为通用的原因)但显然这种方法不起作用。

感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

错误消息告诉您确切的错误。名称array没有声明的变量。

public class ArrayObjects<E> implements SomeImp<E> {
    int maxCapacity, actualSize;
    E[] array; // <- The missing declaration

    @SuppressWarnings("unchecked") // <- Suppress the "unchecked cast" warning
    public ArrayObjects() {
        maxCapacity = 10;
        array = (E[]) new Object[maxCapacity];
    }
}

对于未经检查的演员阵容,你可以做的最好的事情是如上所示压制它。