Scenario 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
}
}
на самом деле Object[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];
}
}