情景 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];
}
}
情景 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];
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货