我在遵循以下代码片段时遇到了麻烦:
prices = pricesService.getProductsByCategory(category);
List<Double> discountedPrices =
Lists.newArrayList(Iterables.transform(prices, new Function<Double, Double>() {
public Double apply(final Double from) {
return from *.88;
}
}));
我知道代码的结果是什么,并且在单元测试中是正确的,但我对番石榴或者这个实现如何/为什么工作并不太熟悉。此外,如果列表“价格”中存在空值,目前似乎也不安全?所以我追求的是:
- 代码如何工作的一般解释。
- 它目前是空安全的吗?如果不是,它怎么会变成这样?