考虑一个方法,例如ConcurrentHashMap
'scompute
方法:
public V compute(
K key,
BiFunction<? super K,? super V,? extends V> remappingFunction)
我想对此进行注释以使用检查器框架进行可空性检查:
public @Nullable V compute(
K key,
BiFunction<? super K, ? super @Nullable V, ? extends @Nullable V> remappingFunction);
但这不太正确:我希望能够推断它返回? extends @NonNull V
,以避免在我知道remappingFunction
永远不会返回的情况下进行空检查null
,例如:
@NonNull V value = map.compute(key, (k, v) -> {
if (v == null) {
return new V();
}
v.increment();
return v;
});
可以表达吗?