tra*_*veh 2 java lambda dictionary functional-programming weak-references
考虑到这段代码:
Map<C1, C2> map;
C1 key;
C2 value;
Run Code Online (Sandbox Code Playgroud)
为什么这样做:
map.computeIfAbsent(key, k -> value)
Run Code Online (Sandbox Code Playgroud)
而这不是?
map.computeIfAbsent(key, () -> value)
Run Code Online (Sandbox Code Playgroud)
因为方法computeIfAbsent具有以下签名:
default V computeIfAbsent(K key,
Function<? super K,? extends V> mappingFunction)
Run Code Online (Sandbox Code Playgroud)
所以它需要 a Function,它是一个函数接口,需要一个参数并返回一个值。而() -> value, 不接收任何参数并产生一个值(例如,供应商)。
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |