毫无疑问,按照整洁代码的原则,每少书写一个 if 代码就会整洁一点,代码出 BUG 的风险就会少一点。所以,追求代码质量的程序员们就会使用各种手段去避免使用 if。下面一种经常遇到的情况是可以不用 if 就可以解决的。 场景
var v = request.getParameter("key");
Integer i;
if (v == null) {
i = null;
} else {
i = Integer.valueOf(v);
}
或者如果可以接受 ?: 表达式的话
Integer i = request.getParameter("key") == null ? null : Integer.valueOf(request.getParameter("key"));
其实很久很久以前,Java 就增加了一个类叫做 Optional,更早的时候这种机制出现在 Guava 中。没有 if 的写法可以写成
Integer i = Optional.ofNullable(request.getParameter("key")).map(Integer::valueOf).orElse(null);