Boolean value = false?false:(false?true:null);
这个公式 看起来没任何问题 希望获得的结果是null,但是运行的结果 确实很惊人
这个代码执行 结果竟然是“空指针” ,这个牵涉到Boolean的自动封箱问题
使用javap 反编译之后 发现java底层根据情况进行了优化,判断这种情况要自动封箱,但是直接为null就不会自动封箱
Boolean value = false?false:(false?true:null);
这个公式 看起来没任何问题 希望获得的结果是null,但是运行的结果 确实很惊人
这个代码执行 结果竟然是“空指针” ,这个牵涉到Boolean的自动封箱问题
使用javap 反编译之后 发现java底层根据情况进行了优化,判断这种情况要自动封箱,但是直接为null就不会自动封箱