在C#中是否有相当于空合并运算符(??)的Java?
2022-08-31 05:59:38
可悲的是-没有。您可以做的最接近的是:
int y = (x != null) ? x : -1;
当然,如果你觉得有必要,你可以用库方法来包装它(它不太可能减少太多的长度),但是在语法级别,没有更简洁的东西可用。
Guava有一个类似方法,称为MoreObjects.firstNonNull(T,T)。
Integer x = ...
int y = MoreObjects.firstNonNull(x, -1);
当您有类似的东西时,这更有用
int y = firstNonNull(calculateNullableValue(), -1);
因为它使您不必调用两次可能昂贵的方法,也可以避免在代码中声明局部变量以引用两次。