// 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