将if语句压缩成更短更优雅的代码

时间:2018-05-03 11:33:05

标签: java java-8

我有以下if-else块,我想知道是否有更优雅的方式可以编写这段代码......我使用的是Java 8

if(valueString != null) {
    return valueString;
}
else if(valueInt != null) {
    return String.valueOf(valueInt);
}
else if(valueFloat != null) {
    return String.valueOf(valueFloat);
}
else if(valueDate != null){
    return String.valueOf(valueDate);
}
else if(valueBit != null) {
    return String.valueOf(valueBit);
}
else {
    return null;
}

1 个答案:

答案 0 :(得分:15)

使用流并遍历所有值,如果它们都不为空,则返回null。

return Stream.of(valueString, valueInt, valueFloat, valueDate, valueBit)
             .filter(Objects::nonNull)
             .map(String::valueOf)
             .findFirst().orElse(null);