项目场景:
三目表达式的错误使用
问题描述:
使用三目表达式报错
map2.get(poll) == 1 ? map2.remove(poll) : map2.put(poll, map2.get(poll) - 1);
原因分析:
@青衫白衣小黑炭 (来自q群大佬)
条件表达式不能单独使用
简单来说,可以理解成条件表达式是有一个返回值的,而且这个返回值必须使用(这个只是抽象理解)
可以给它赋值,也可以当成参数传递给函数,就是不能直接使用
解决方案:
按下alt+enter,系统给出两套解决方案
Integer integer = map2.get(poll) == 1 ? map2.remove(poll) : map2.put(poll, map2.get(poll) - 1);
if (map2.get(poll) == 1) {
map2.remove(poll);
} else {
map2.put(poll, map2.get(poll) - 1);
}