黑马程序员技术交流社区

标题: 泛型类的构造函数问题? [打印本页]

作者: 罗全涛    时间: 2011-12-28 17:23
标题: 泛型类的构造函数问题?
本帖最后由 罗全涛 于 2012-1-2 14:15 编辑

将才看关于泛型类的资料时候,书中给了个例子,实现构造函数有点不明白:
public class Lhist<V> {
private V[] array;
public Lhist(int capacity) {
    array = new V[capacity]; // illegal 错误的
}
}
----------------------------------------
public class Lhist<V> {
private V[] array;
public Lhist(int capacity) {
    array = (V[]) new Object[capacity]; //正确的
}
资料只说具体原因很复杂,当学习到 底层细节 一节中的“擦除”主题时,就会明白。可我还是不太明白,大家帮忙看看,能用平白的话给出原因就更好了。

作者: 张建银    时间: 2011-12-28 18:47
泛型是TYPE不是Object  不能new所以报非法错误
作者: 罗全涛    时间: 2011-12-28 19:31
张建银 发表于 2011-12-28 18:47
泛型是TYPE不是Object  不能new所以报非法错误

对象在创建的时候不是会传进去一个类型吗?然后会强制将所有的V变成你传入的类型。那不就可以用new了?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2