【问题标题】:public static final Lambda?公共静态最终 Lambda?
【发布时间】:2015-09-09 15:29:26
【问题描述】:

在实用程序类中对常用 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);
}

【问题讨论】:

  • 您分组的不是 lambda 表达式,而是 Function 值。
  • 我应该说 common Function values 而不是 common lambda 表达式 吗?问题仍然是一样的;它被认为是好的做法还是我应该使用常规功能?
  • 我只是想让你做出区分。 Lambda 表达式只是语法。做任何对您和您的开发人员更清楚的事情。

标签: java lambda static final public


【解决方案1】:

你也可以这样做

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

并像使用它一样

    MathUtils::triangle 

取决于您的品味和用例。

【讨论】:

  • 感谢您的回复。我不确定您的代码是否正确。
  • 修复了代码,我肯定更喜欢这个答案。不要费心保存 lambda;编写实用方法,然后使用方法引用。
【解决方案2】:

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

在实用程序中对常用功能进行分组是否被认为是一种好习惯 类避免代码重复?

我相信您已经知道这个问题的答案:当然,这就是实用程序模式的全部目的

【讨论】:

  • 感谢您的澄清。
猜你喜欢
  • 2012-04-20
  • 1970-01-01
  • 2011-02-06
  • 2018-07-06
  • 1970-01-01
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
相关资源
最近更新 更多