在 Java 8 中,您可以编写如下代码:
List<Integer> list = IntStream
.range(0, 100)
.boxed()
.collect(Collectors.toCollection(ArrayList::new));
如何创建自定义 XStream
类?例如,假设我有一个自然可以排序的类,你自然可以有一个对象的前驱和后继。喜欢:
public class PurchaseOrder {
public long orderNumber;
public PurchaseOrder(){
orderNumber = 0L;
}
}
然后,我可以有一个理论上的 PurchaseOrderStream,您可以为其编写以下代码:
List<PurchaseOrder> list = PurchaseOrderStream
.range(0, 100)
.collect(Collectors.toCollection(ArrayList::new));
我该怎么做呢?是否有任何类或接口(interface)需要 PurchaseOrderStream
来extend
/implement
?我不是在寻找完整的源代码(尽管那会很好),而只是朝着正确的方向前进。
最佳答案
最简单的方法就是使用现有的方法。我看不出有任何理由在这里重新发明轮子。
例如,如果您编写了一个静态方法PurchaseOrder getFromId(long id)
,您可以这样做
LongStream.range(0, 100).mapToObj(PurchaseOrder::getFromId)
.collect(Collectors.toCollection(ArrayList::new));
如果这还不够短,你可以写一个方法
public static Stream<PurchaseOrder> range(long low, long high) {
return LongStream.range(low, high).mapToObj(PurchaseOrder::getFromId);
}
然后你可以写
PurchaseOrder.range(0, 100).collect(Collectors.toCollection(ArrayList::new));
关于java - 创建一个自定义的类 IntStream 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33026473/