Сценарий A.java ----------- после стирания --------> M.class
Сценарий B.java ----------- после стирания --------> M.class
Тогда почему A является недопустимым, а B - легальным, поскольку после стирания у них почти одинаковое значение M.
Сценарий A до стирания:
class ArrayList<V> {
private V[] backingArray;
public ArrayList() {
backingArray = new V[DEFAULT_SIZE]; // illegal
}
}
Сценарий A после стирания:
class ArrayList<V> {
private Object[] backingArray;
public ArrayList() {
backingArray = new Object[DEFAULT_SIZE]; // this is not useful
}
}
на самом деле объект [Default_Size] полезен ~
Сценарий B перед удалением:
class ArrayList<V> {
private V[] backingArray;
public ArrayList() {
backingArray = (V[]) new Object[DEFAULT_SIZE];
}
}
Сценарий B после стирания:
class ArrayList<V> {
private Object[] backingArray;
public ArrayList() {
backingArray = (Object[]) new Object[DEFAULT_SIZE];
}
}