处理null的优雅方法 - 在2个变量中只需要单个null值

时间:2017-03-17 00:57:59

标签: java logic

有没有更好的方法来解决这个问题? 我有两个变量X& Y. X& Y都不能为空。他们两个都无法设置。其中只有一个应该为空

例如:

if (x && y)
    return err;
if (x == null && y == null)
    return err;
if (x)
 …do something with x
if (y)
..do something with y

2 个答案:

答案 0 :(得分:6)

您可以合并错误检查,如下所示:

if ((x == null) == (y == null)) {
    return err;
}
if (x != null) {
    // do something with x
} else {
    // do something with y
}

答案 1 :(得分:0)

这个问题更适合codereview,但通常最好避免使用聪明的代码。如果您特别想要合并这两个错误情况,请编写

if (x != null && y == null) {
    // do something with x
} else if (y != null && x == null) {
    // do something with y
} else {
    return err;
}