所以我想看看是否有一个更好的方法来优化我写这段代码片段的方式。
现在,我的片段是:
private static LocalDate runDate = null;
public static void main(String[] args) throws Exception {
// assuming we use 2 arguments (first is the testing environment we want, and
// second is the date in MM-dd-yyyy format)
if (args.length == 0) {
throw new Exception("Not enough arguments in main. Must provide at least the environment.");
} else if (args.length == 2) {
String[] dateArray = args[1].toString().split("-");
runDate = LocalDate.of(Integer.parseInt(dateArray[2]), Integer.parseInt(dateArray[0]),
Integer.parseInt(dateArray[1]));
}
if (runDate == null) {
runDate = LocalDate.now();
}
}
运行配置中我的程序参数的输入语句是 "TEST" "11-30-2020"
或者只是 "TEST"
.
从代码中可以看到,我检查args的长度是0还是2(从技术上讲是1,我将很快解释原因)。如果有0个参数,那么抛出一个错误,因为您至少需要在其中工作的环境。如果有一个参数,这意味着只有环境 "TEST" (or PROD)
,则表示运行日期为 LocalDate.now()
,它采用yyyy-mm-dd格式的当前日期。
但是,我也允许这个程序的运行日期,您可以以mm dd yyyy的格式输入运行日期,因为必须有一个 "TEST"
参数,这将检查else if语句,并使运行日期等于输入的参数日期,格式为yyyy-mm-dd。
不过,我不确定这段代码是否100%好,但它检查rundate=null是否正确的事实让我觉得有点奇怪。处理这些条件的更好方法是什么?
暂无答案!
目前还没有任何答案,快来回答吧!