请先看代码:
static List intArrayAsList(final int[] a) {
return new AbstractList() {
public Object get(int i) {
return new Integer(a[i]);
}
public int size() {
return a.length;
}
public Object set(int i, Object o) {
int oldVal = a[i];
a[i] = ((Integer)o).intValue();
return new Integer(oldVal);
}
};
}
public static void main(String[] args) {
int[] a = {0, 1};
List l = intArrayAsList(a);
int b = (int)l.get(0);
}
我的问题在于:当intArrayAsList方法结束时,方法入参不是生命周期就结束了吗?而且在new AbstractList时,也并没有把方法入参传给AbstractList的instance里去。那么当调用l.get()时,到底是从哪里得到的数据?
求详解这部分知识。