情景 A-----------after erasure-------->M
情景 B-----------after erasure-------->M为什么A  illegal   B legal,他们通过erasuer 转换成M 后是相同的啊。情景A before erasure: class ArrayList<V> {
  private V[] backingArray;
  public ArrayList() {
    backingArray = new V[DEFAULT_SIZE]; // illegal
  }
}why this is wrong ?  just because after erasure   new Object[Default_Size] is not useful?
Scenario A after erasure: class ArrayList<V> {
  private Object[] backingArray;
  public ArrayList() {
    backingArray = new Object[DEFAULT_SIZE]; // this is not useful
  }
}
actually the Object[Default_Size] is useful ~
情景 B before erasure:class ArrayList<V> {
  private V[] backingArray;
  public ArrayList() {
    backingArray = (V[]) new Object[DEFAULT_SIZE]; 
  }
}Scenario B after erasure: class ArrayList<V> {
  private Object[] backingArray;
  public ArrayList() {
    backingArray = (Object[]) new Object[DEFAULT_SIZE]; 
  }
}