hasTimePeriodExtraDays

hasTimePeriodExtraDays

1. hasTimePeriodExtraDays = (externalSystemConfigsDTO == null) ? true : externalSystemConfigsDTO.hasTimePeriodExtraDays();

2. if(externalSystemConfigsDTO == null){
            hasTimePeriodExtraDays = true;
        } else {
            hasTimePeriodExtraDays = externalSystemConfigsDTO.hasTimePeriodExtraDays();
        }

1子句不将IT作为抛出的空指针传递,而2子句传递UT。

最佳答案

hasTimePeriodExtraDays()返回什么?布尔基元还是布尔对象?和hasTimePeriodExtraDays一样吗?

三元组带来了看不见的自动装箱,以确保双方的类型相同,这可以解释一下。

例如。如果它返回一个布尔值并且该变量是一个布尔值,则在您的IF中,即使返回值为null,它也可以正常工作。

但是在您的青少年时代,可能会将两者都转换为布尔型原语-如果返回值为null,则您将看到NullPointerException异常。

更多信息-Why does the ternary operator unexpectedly cast integers?

关于java - 三元运算符的结果不同,否则,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53642452/

10-09 04:43