Заменить
map.compute("Name", (key, val) -> ( val==null) ? "Gaurav" : val="Great");
на
map.compute("Name", (key, val) -> (val == null) ? "Gaurav" : "Great");
Вывод:
Great
Объяснение: Синтаксис троичного оператора выглядит следующим образом:
variable = condition ? value-if-condition-is-true : value-if-condition-is-false
например, следующий код присваивает значение x
в z
int x = 10, y = 5, z;
z = x > y ? x : y;
System.out.println(z);
Однако, если вы вообще хотите сохранить оставив операнд внутри оператора, вы можете сделать это, используя ()
следующим образом:
map.compute("Name", (key, val) -> (val == null) ? "Gaurav" : (val = "Great"));
Аналогично,
z = x > y ? x : (z = y);
Даже если эти два оператора, приведенные выше, будут успешно скомпилированы, я рекомендую никогда не делать этого так, поскольку это просто запутает любого, кто просматривает ваш код.