你
可以
用一些普通的傻瓜。。。
(在下面;
E
是
元素
的
MyCollection
和
C
是
延伸
属于
真菌采集
.)
abstract class MyCollection> {
private final List elements;
MyCollection(final List elements) {
this.elements = new ArrayList<>(elements);
}
C map(final UnaryOperator mapper) {
final List mappedElements = new ArrayList<>(this.elements.size());
for (final E element : this.elements) {
mappedElements.add(mapper.apply(element));
}
return this.create(mappedElements);
}
abstract C create(final List mappedElements);
}
class SubCollection extends MyCollection> {
SubCollection(final List elements) {
super(elements);
}
@Override
SubCollection create(final List mappedElements) {
return new SubCollection<>(mappedElements);
}
}
我想不出有一次我不得不做这种事。。。