ein*_*ica 2 java functional-programming list guava
我有一个函数myFunction的Function<Integer, T>,我想构造一个对象mylist的大小size,实现List<T>(或者某种不可变列表界面),通过功能的支持,在这个意义上mylist.get(i) == myFunction.apply(i).
我可以手动执行此操作,但是有一些(Guava)代码也可以这样做吗?
只需使用java.util.AbstractList:
new AbstractList<T>() {
public T get(int i) {
Preconditions.checkElementIndex(i, size);
return function.apply(i);
}
public int size() {
return size;
}
}
Run Code Online (Sandbox Code Playgroud)
结果不一定是不可变的,因为函数输出可能会有所不同.很有可能,你可以Function完全摆脱它,只需Function在你的AbstractList实现中编写实现.
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |