这是一个在Java中模似出函数式风格的库,示例代码如下:
Calendar now = Calendar.getInstance();
Set<Calendar> set =
Op.on(list).toSet().map(FnString.toCalendar("dd/MM/yyyy")).removeAllNullOrTrue(FnCalendar.after(now)).get();
这一行代码,做了很多事情:
看起来挺酷的,但其实我不太推荐在Java中使用这种伪函数式风格。毕竟是模拟出来的,用起来总觉得手脚僵硬。有时候一些很自然的需求,却无法用这种方式实现,比如:取成一个Person列表中每个人的名字,组成一个新list,不知道怎么用这个实现。
看到这些,又不自然地去想到如scala, groovy这样的语言了。