[英]Any reason for using compose() instead of lambda expressions?
我正在將compose()
默認方法的使用與其等效的lambda表達式進行比較,但找不到任何偏愛前者的原因。
也許原因與表現代碼或功能的編程風格,如指出這里
但是,比較兩種方法來解決問題如何進行功能組合? 我只看到使用compose()
而不是lambda表達式的缺點。
根據接受的答案使用compose()
第一種方法:
Function<Person, Address> personToAddress = Person::getAddress;
Function<Address, String> addressToCountry = Address::getCountry;
Function<Person, String> toCountry = addressToCountry.compose(personToAddress);
使用lambda表達式的第二種方法:
Function<Person, String> toCountry = p -> p.getAddress().getCountry();
為什么我偏愛第二個? 首先,它不那么冗長。 其次,它不需要顯式輔助變量personToAddress
和addressToCountry
。
因此,是否有任何理由使用compose()
而不是顯式使用lambda?
原因之一是如果您不在同一段代碼中創建一個甚至兩個函數,而是從其他地方傳遞它們。 然后,您可以編寫一個在給定函數上調用apply()
的lambda,或使用compose()
,這可能會更清潔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.