富有表现力的Java功能

时间:2016-10-22 18:45:35

标签: java lambda functional-programming

我有一个工作的Java应用程序,我希望更新以使用更多Java 8的功能。

我有Function如下:

protected static Function<Notification,Notification> 
    coverpageNotification =  n -> n
                        .withMessage("COVERPAGE MESSAGE")
                        .withDate(new Date());

我现在使用:

来调用它
s = new HashSet<Notification>();
checkNotificationStatus(true, coverpageNotification.apply(new Notification()), s);
...
...

不是说coverpageNotification.apply(new Notification()),而是使用lambdas更有表现力吗?

1 个答案:

答案 0 :(得分:1)

没有更具表现力的语法来调用Function.apply()

除此之外,你想用lambda做什么? 在目前的形式中,这与简单的方法相比没有任何优势:

static Notifaction addCoverPage(Notifaction n){
    return n.withMessage("COVERPAGE MESSAGE")
     .withDate(new Date());
}

checkNotificationStatus(true, addCoverPage(new Notification()), s);

如果您在某些时候仍需要某个功能,您也可以将该方法转换为一个:

Function<Notification,Notification> x =  SomeClass::addCoverPage;