公共静态最终Lambda?

时间:2015-09-09 15:29:26

标签: java lambda static final public

在实用程序类中对常见的lambda表达式进行分组以避免代码重复是不错的做法?

最好的方法是什么?现在,我有一个MathUtils类,其中包含一些公共静态最终函数成员:

public class MathUtils{
    public static final Function<Long, Long> triangle = n -> n * (n + 1) / 2,
        pentagonal = n -> n * (3 * n - 1) / 2,
        hexagonal = n -> n * (2 * n - 1);
}

2 个答案:

答案 0 :(得分:3)

你也可以这样做

public class MathUtils
{
    public static long triangle(long n)
    {
        return n * (n + 1) / 2;
    }

并像

一样使用它
    MathUtils::triangle 

取决于您的口味和使用情况。

答案 1 :(得分:1)

像@SotiriosDelimanolis所说,lambda只是语法。编译后的代码或多或少与标准函数相同。所以在这个意义上,问题就变成了:

  

在实用程序中对常用函数进行分组是一种良好的做法   类以避免代码重复?

而且我确定你已经知道了这个问题的答案:当然,这就是实用模式的全部目的