【发布时间】:2018-06-27 19:38:54
【问题描述】:
private static Iterable<Object> iterable(
final Object first, final Object second, final Object[] rest) {
checkNotNull(rest);
return new AbstractList<Object>() {
@Override
public int size() {
return rest.length + 2;
}
@Override
public Object get(int index) {
switch (index) {
case 0:
return first;
case 1:
return second;
default:
return rest[index - 2];
}
}
};
}
作者的目的是什么?
我猜他想利用编译器生成的数组,而不是新建一个ArrayList。
但是还是有点迷惑,为什么不写成下面这样呢?
private static Iterable<Object> iterable(final Object[] rest) {
checkNotNull(rest);
return new AbstractList<Object>() {
@Override
public int size() {
return rest.length;
}
@Override
public Object get(int index) {
return rest[index];
}
};
}
【问题讨论】:
标签: java guava iterable joiner