Files
openide/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceComputeWithComputeIfPresent/afterCompute.java
Tagir Valeev ecb2f6c1cf Add "Replace 'compute' with 'computeIfPresent'" fix
Helps for IDEA-194058 False-positive warning of producing NullPointerException for Map.compute
2018-06-19 15:07:31 +07:00

31 lines
772 B
Java

// "Replace 'compute' with 'computeIfPresent'" "true"
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
class Main {
interface Item {
Integer getInfo(int i);
}
native List<String> getNamesList();
void test(List<Item> infoList) {
Map<String, List<Integer>> data = new HashMap<>();
List<String> names = getNamesList();
for (String key : names) {
data.put(key, new ArrayList<>());
}
for (Item info : infoList) {
for (int i = 0; i < names.size(); i++) {
final String k = names.get(i);
final Integer newValue = info.getInfo(i);
data.computeIfPresent(k, (key, array) -> {
array.add(newValue);
return array;
});
}
}
}
}