Java中充斥着这样的语句:if(cage.getChicken()!=null){dinner=cage.getChicken();}else{dinner=getFreeRangeChicken();}在返回的对象可以分配给dinner之前需要两次调用getChicken()。也可以这样写成一行:dinner=cage.getChicken()!=null?cage.getChicken():getFreeRangeChicken();但是,仍然有两个对getChicken()的调用。当然我们可以分配一个局部变量,然后如果它不为null,则再次使用三元运算符来分配它,但这是两行而不