فرق بینAnonymous Implementation با lambda Expersion چیه؟
میگن تویه lambda باید متغییر ها final باشن یا اینکه خودمون تغییر ندیم در غیر اینصورت خطا میدن
اما
Map<Integer, Integer> map = new HashMap<>();
map.put(1, 1);
map.put(12, 12);
Map<Integer, Integer> map2 = new HashMap<>();
map2.put(10, 10);
map2.put(11, 11);
map2.forEach((key, value) -> {
map.computeIfAbsent(key, k -> {
k = key;
Integer v = 0;
if (k < 100)
v = k * 2;
return v;
});
});
تویه این یه تکیه کد در قسمت map.computeIfAbsent من گفتم k = key پس مقدار دهی کردم و خطایی هم نمیده چرا؟