0和false
之前一直没怎么在意,写程序时直接用0和false比较从而判断真假,结果执行了几次,发现最终结果都不是预想的,之后就开始debug一步步找原因,最终发现”0”.equals(map.get(“auto”))时返回的结果一直是false
"0".equals(map.get("auto"))
原因 :
map中存的是true和false,不是0和1,equals方法是转成对应的String类型比较,所以0和true,0和false比较结果都是false。
map.get("auto") != null && !(boolean)map.get("auto")