我剛纔注意到Consumer
沒有identity()
方法,就像java.util.function.Function
一樣。爲什麼java.util.function.Consumer不具有identity()?
是的,這只是一個漏洞而已,但至少可以清楚地看到,我不僅錯過了括號中的一些代碼。
拿這個人爲的例子:
public void applyConsumerIfExists(String key, String param) {
Map<String, Consumer<String>> consumers = new HashMap<>();
consumers.put("a", MyClass::myConsumer);
// I can create my own, but that's no fun :(
Consumer<String> identity = input -> {};
consumers.getOrDefault(key, identity).accept(param);
// DOESN'T WORK, since identity() doesn't exist on Consumer
consumers.getOrDefault(key, Consumer.identity()).accept(param);
}
問題
爲什麼不Consumer
HAVA的identity
方法?
我不會稱之爲「身份」。 'empty'或'noAction'會更好地描述它。 – Eran
看到這個:http://stackoverflow.com/questions/29851525/is-there-a-method-reference-for-a-no-op-nop-that-can-be-used-for-anything-lamb –
我想,[這](http://stackoverflow.com/a/26553481/4856258)斯圖爾特也回答你的類似問題的答案。 –