// Concrete implementation built atop skeletal implementation
static List<Integer> intArrayAsList(final int[] a) {
if (a == null)
throw new NullPointerException();
return new AbstractList<Integer>() {
public Integer get(int i) {
return a[i]; // Autoboxing
}
@Override
public Integer set(int i, Integer val) {
int oldVal = a[i];
a[i] = val; // Auto-unboxing
return oldVal; // Autoboxing
}
public int size() {
return a.length;
}
};
}
到目前为止,我知道我们根本不能实例化一个抽象类。但是我们在return new AbstractList<Integer>()
这里没有做同样的事情吗?我很困惑 。我们是否在这里实例化一个Abstract类?
这是你的抽象类的**匿名内部子类**的一个实例。 – 2012-07-18 15:20:29
它看起来像一个静态方法 – 2012-07-18 15:20:42
@MarkoTopolnik我也认为它是一个匿名的子类,但为什么这里没有扩展'关键字'? – Geek 2012-07-18 15:22:06