我有一個關於lambda表達式可重用性的問題,沒有代碼重複。例如,如果我有一個幫助器方法,我可以很容易地將它編碼爲一個靜態方法,並且可以從其他類中引用它而不存在代碼重複。這將如何在lambda表達式中工作? 例子:我有以下的靜態方法寫入lambda表達式vs靜態方法
public class MyUtil {
public static int doubleMe(int x) {
return x * 2;
}
}
我可以重複使用而無需在整個項目
public class A {
public void someOtherCalculation() {
MyUtil.doubleMe(5);
}
}
public class B {
public void myCalculation() {
MyUtil.doubleMe(3);
}
}
多處代碼重複同樣的方法它是如何工作的,當涉及到一個lambda函數,編寫一次函數並在多個類中使用相同的函數。
Function<Integer, Integer> doubleFunction = x -> x * 2;
在我的例子中,我會在哪寫上面的lambda函數,以及如何在類A和B中重複使用相同的函數?
「代碼重用」在這裏是一個錯誤的目標。代碼_expressiveness_是需要的。使用不重複使用代碼的lambda有什麼可能的危害,以及你有什麼證據證明它沒有? Lambdas適用於許多不同的函數可以在算法中替代。你會爲它們寫一個明確的靜態方法,併爲每個方法創建一個方法參考,所以你可以說:「看,媽媽,我正在使用lambda表達式!」?在這種情況下傳統使用lambdas是否更有意義?您尋求的_real_工程優勢是什麼? –
如果你想重用一個函數,那麼定義一個實現Function函數接口的類。靜態方法不是一個函數。 – xgbuils