4 回答
TA贡献1829条经验 获得超6个赞
我发现第二个更容易阅读。它更短,并且带有前置条件检查,可以立即告诉您允许哪些值。在第一个示例中,您必须遍历整个方法体才能理解这一点。
综上所述,该方法应使用以下方式编写java.time.Month:
public String getMonthNameNew(int month) {
return Month.of(month).getDisplayName(TextStyle.FULL, Locale.ENGLISH);
}
TA贡献1880条经验 获得超4个赞
就像我在评论中说的那样,你可以做一个枚举类来做到这一点。
public enum Months {
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
}
TA贡献1828条经验 获得超3个赞
对于这样的情况,最好列出利弊清单。
示例 1:
专业版:
容易理解
可读
和:
难以扩展(您将如何返回不同语言的月份名称?)。
其他 Java API 使用月份值 0 到 11。
几乎是第二个示例的两倍。
示例 2:
专业版:
袖珍的
如果稍微更改代码,则可以从不同的源(属性文件、数据库)填充数组。
灵活的
和:
聪明的。代码取决于数据集中没有间隙的事实。虽然在这种情况下确实如此,但在其他情况下可能并不那么明确。
其他 Java API 使用月份值 0 到 11(同上)。
如果没有额外的要求,我在这里看不到明显的赢家。
添加回答
举报