true false Boolean之前的关系

Boolean value = false?false:(false?true:null);

 

这个公式 看起来没任何问题   希望获得的结果是null,但是运行的结果 确实很惊人

 

这个代码执行 结果竟然是“空指针” ,这个牵涉到Boolean的自动封箱问题

 

使用javap  反编译之后 发现java底层根据情况进行了优化,判断这种情况要自动封箱,但是直接为null就不会自动封箱

你可能感兴趣的:(true,false,Boolean之前的关系)