public class Source {
public static ArrayList<Animal> anis = new ArrayList<Animal>();
}--------------------------------------------------------public class AddMessageEditor extends EditorPart {
List<Animal> list = Source.anis;
for(Animal animal : Source.anis) {
}
for(Animal animal : list){
}
}请问 声明一个 list 和直接用 Source.anis 有区别吗?
List<Animal> list = Source.anis;
已经向上转型了,在使用list时,ArrayList特有的方法就不可用了。
比如trimToSize(),ensureCapacity(int minCapacity)。 //list.ensureCapacity(10); //不能通过编译。
Source.anis.ensureCapacity(10); //可以编译。