class MutableArrayList<Object>{
private Object[] elementDate;
private int size;
public MutableArrayList(int n){
elementDate=(Object[])new object[n];
size=0;
}
}
//报错:Cannot resolve symbol 'object'
但是这样写就没问题,是为什么啊
class MutableArrayList<object>{
private object[] elementDate;
private int size;
public MutableArrayList(int n){
elementDate=(object[])new Object[n];
size=0;
}
}
第一种写法,表示Object类
第5行的 new 后面的object 的首字母要大写,代表Object类
后面的写法,是使用了泛型,object代表是任何类型,第5行是Object数组转为泛型对应的数组
把object改为T,是不是眼熟了些
class MutableArrayList<T>{
private T[] elementDate;
private int size;
public MutableArrayList(int n){
elementDate=(T[])new Object[n];
size=0;
}
}
object是类,是大写字母开头,改为Object
第一个代码:是一个泛型(泛型可以随便起名字,这里你把泛型定义为Object),new object[n];中object这个类没有定义,所以会有那个报错。如果你把new object[n];改为new Object[n];会报类型参数不能直接实例化对象。