2015-09-09 23 views
2

在實用程序類中將常見lambda表達式分組以避免代碼重複是否被認爲是良好實踐?public static final 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); 
} 
+5

這不是你正在分組的lambda表達式,它是'Function'值。 –

+0

我應該說_common'Function' values_而不是_common lambda表達式_?問題仍然是一樣的;它被認爲是好的做法還是應該使用常規功能? – a44043

+2

我只是想讓你作出區分。 Lambda表達式只是語法。做一些更清楚的事情,你和你的開發者。 –

回答

2

你也可以做這種方式

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

,並根據自己的口味和使用的情況下,使用它像

MathUtils::triangle 

+0

感謝您的回覆。我不確定你的代碼是否正確。 – a44043

+2

修復了代碼,我肯定會更喜歡這個答案。不要去節省lambda;編寫實用程序方法,然後使用方法引用。 –

1

像@SotiriosDelimanolis說,拉姆達只是語法。編譯後的代碼與標準函數差不多。所以在這個意義上說,問題就變成了:

是它視爲一個工具 類很好的做法組常用的功能,以避免代碼重複?

而且我敢肯定,你已經知道這個問題的答案:當然,這就是效用模式的全部目的。

+0

謝謝你的澄清。 – a44043

相關問題