我习惯用java样板检查输入参数,如方法顶部所示:
value={single.id.toString()}
但是,我正在阅读Java 8的可选参数,并注意到我们可以改为执行以下操作:
public static Boolean filesExist(String file1, String file2, String file3 ... ) {
if (file1 == null || file2 == null || file3 == null ||...) {
throw new IllegalArgumentException();
}
if (another_param == null) {
throw new NullPointerException();
}
}
所以我的问题是第二种方法是否有不利之处,我觉得它对我来说看起来更干净。
答案 0 :(得分:9)
要进行输入验证,请改用Objects.requireNonNull:
public static Boolean filesExist(String file1, String file2, String file3 ... ) {
Objects.requireNonNull(file1);
Objects.requireNonNull(file2, "custom message");
}
它更简洁,更清楚地传达意图,并且不会创建其他Optional
对象。不过,它会抛出NullPointerException
。
答案 1 :(得分:1)
这样做是没有弊端的,代码可以正常工作,但是引入Optional是为了达到不同的目的。例如,您可以在接口的方法签名中使用Optional,以便清楚地传达您的信息。向客户表明您的方法返回的值是“可选”。这样,您的客户就不必进行猜测工作。
答案 2 :(得分:0)
不,采用第二种方法没有不利之处。两者都做相同的事情,但方式不同。 Optional
是Java 8中新增的一项新功能。