转换为Java 8函数

时间:2017-04-21 04:09:30

标签: java lambda java-8 java-stream

如何使用Java 8编写以下函数?

private static final Function<String, Integer> EmpIdToInt = (id) -> {   
    return Integer.valueOf(ACI.generate("emp",id).revealId().intValue());
};

在Java 8中有没有更好的方法来编写这个函数?

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

  

有没有更好的方法在java 8中编写这个函数?

您已经使用了java 8的功能,是的,您可以删除中Link (来缩短代码,因为只有一个参数并删除了{{1 } )因为只有一个执行语句。

你可以像这样简化它:

{

答案 1 :(得分:2)

注意:我带走private static final打印页面。

IF 您的revealId是一个整数,您可以简化为:

Function<String, Integer> EmpIdToInt = id -> ACI.generate("emp",id).revealId();
revealId不是整数时,

int会自动装箱到Integer,因此您可以移除{{1}方法调用:

Integer.valueOf

OR 您可以使用Function<String, Integer> EmpIdToInt = id -> ACI.generate("emp",id) .revealId().intValue(); 方法逐步链接这些功能:

注意:类curry是声明X方法的地方,而类revealId是声明Y方法的地方。

intValue